Jump to content

VirtualKitten

Resident
  • Posts

    916
  • Joined

  • Last visited

Everything posted by VirtualKitten

  1. thanks Fenix I had not seen that I tried llteleportAgenGlobalCoords(teleportee,l,ZERO_VECTOR,ZERO_VECTOR); but it gave a syntax error but worked in previous one if there was a LM in the inventory of the script. As lRequestSimulatorData(SURL DATA_SIM_POS) returns a key how do i get the actual vector position please? I presume its by dataserver(key Q, string data ) { if(q == key_from_above) { newGlobalVector = (vector)DATA;} }
  2. Pedlar . Its important to note perms of objects have changed you cannot give full perms to an object unless you take it into your inventory first and set perms there. This is a form of protection . You can also while the object is in world go to perms in content properties and adjust all content permissions even texture perms for textures or anything else in the object . Hope this helps .
  3. I think OP means volumetric water like you can buy on Market Place. Its a mesh grid with faces to look like the water has body under it . I hope this helps. OP will then be flying through a mesh water not llWater.
  4. Hi you said "I crossed the prim ?" what did you mean and ghost prim do you mean physical? finally the criteria of llSetKeyFrameMotion is as follows have a look at point two emboldened, be safe Caveats This function does not work in attachments. This function can only be called on NON-physical objects. In the future it could be extended to support physical objects, but this is more complicated as collisions could prevent the object from reaching its goal positions on time. You cannot use scripts to move any prim in the linkset while the keyframed motion is active. If you must, first pause and restart it with KFM_CMD_PLAY when done. #Example Collisions with avatars affect the angular movement of the object and it may not reach the final rotation. This function can only be called on the root prim of a linkset. This function requires the linkset to use the Prim Equivalency system. However, it keyframed objects will not receive the dynamics penalty and can have a physics weight of up to 64. llSetKeyframedMotion is implemented in terms of frames and not real time. To avoid a drift from the expected positions and rotations, use times which are integer multiples of 1/45, e.g. 20.0/45.0, 40.0/45.0, 90.0/45.0, etc. Forum Thread KFM claims delta times must be larger than 0.1 seconds; in practice, however, delta times slightly over 0.1 will produce an error on DEBUG_CHANNEL. Testing shows a minimum delta time is about 6/45 (.13333) seconds. Natural drift can still occur; for best results use moving_end to determine when the animation has ended and confirm the target position with llSetPos. Or you can use at_target or at_rot_target. There are a few bugs in the avatar animation system that may cause strange looking animations to play when standing on a moving platform (e.g., walking in place, feet-at-pelvis). We hope to fix these in the future, but doing so is out of scope for this feature. As with dynamic objects, objects moving using this function are paused when they are selected by an avatar with adequate permissions (object owner, passenger, etc). When such an avatar deselects the object, motion resumes, even if the object had been paused using KFM_CMD_PAUSE. A Key Framed Motion is a prim property in some respect. When a KFM_LOOP or KFM_PING_PONG is initiated the the motion is preserved after the script is removed. I.E. The prim will continue what motion it had. It will survive take and copy. It will survive server restart. Inter region movement is far from perfect. Crossing from sim 1 to sim 2 using a Key Frame list with numerous frames on a curved path will pick up conspicuous errors on the crossing and when reversed by [ KFM_MODE, KFM_REVERSE ] the object will stay in sim 2 and never return to sim 1 All Issues ~ Search JIRA for related Bugs
  5. might be nice to have a mesh number pad try turbo squid and usehttp://wiki.secondlife.com/wiki/LlDetectedTouchFace and http://wiki.secondlife.com/wiki/LlDetectedTouchPos
  6. Dear Scriblers and Scripters I hope you are all doing well. I have been trying to read up on Agent teleports and have noticed llTeleportAgent does not take a SURL like one from the location bar. I looked at llTargetAgentGlobalPosition( and was not informed by the wiki page all it showed was how to teleport to your own region utterly useless when i had a SURL. I think I can use this but need a better explanation please how to use SURL from browsers location copied into script. Thanks for looking
  7. Hi all you scribblers and scriptwriter, I have been searching wiki and cannot find what this Feature Property light texture does or is like or what it does to light its not included in PRIM_POINT_OF_LIGHT. o it seems a bit of a mystery? Can anyone shed some light giggles
  8. I have been reading this with a lack of hope of the criteria for animation requests. I have now a working single prim with seats stored in a Json SEAT_DATA record. This works perfectly with every different touch. It only becomes a problem when another avatar sits down and i need to change previous animated animater that may be laying on the item to sit up. Nothing I do will get this to work the llRequestpermissions is requested for the first avatar is not moved. I remember when writing a Dance Hud I needed a Server and Doll script. However this does not seem necessary if the hud is touched to change animations only if the script does it now this is a little strange as the criteria in on WIKI bellow doesnt say this massive use of scripts is required something LSL tells us t cut back on . Do I understand that the thing I am missing is STATE and i clearly need to set a different STATE before each Request ie Requesting a permission in one state, then changing state before the agent response, will cause run_time_permissions to be fired in the new state once the agent responds. Caveats A dialog is presented to the agent to grant these permissions except when granted automatically as shown in the table above. If object is attached to agent, "automatic" permissions are granted without notification upon request. Permissions persist across state changes. Regardless of whether granting is automatic, you should always use the run_time_permissions event. Granting permissions takes time, and you shouldn't assume it's completed until the run_time_permissions handler gets invoked. The menu-option "Stop Animating Me" will release certain permissions (PERMISSION_TRIGGER_ANIMATION and PERMISSION_OVERRIDE_ANIMATIONS), if the script which holds these permissions is in the same region as the agent, and the script is not attached to the permission granter. Permissions do not accumulate. If a permission was requested with a previous call to this function and granted, then in subsequent call was not requested, that permission is released (lost). To request two or more permissions at the same time, use the bitwise OR (|) operator, e.g.: llRequestPermissions(AvatarID, PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION) Permissions are requested and granted separately for each script, even if they are located in the same object. It is currently not possible to request no permissions at all (see Issues below); as a workaround llResetScript can be used. Scripts may hold permissions for only one agent at a time. To hold permissions for multiple agents you must use more than one script. The result of granting permissions affects the return of llGetPermissions and llGetPermissionsKey immediately, despite the run_time_permissions event being queued, or dropped if the object's event queue is full. Permission request dialogs never time out. If a script makes two permission requests, whichever response is last is considered the granted permissions. The viewer limits permission requests from any agent to any other agent to 5 dialogs in 10 seconds. Permission requests and changing state ... Requesting a permission in one state, then changing state before the agent response, will cause run_time_permissions to be fired in the new state once the agent responds. Requesting only auto-granted permissions in one state, then immediately changing state, will never fire run_time_permissions.
  9. I have been reading this with a lack of hope of the criteria for animation requests. I have now a working single prim with seats stored in a Json SEAT_DATA record. This works perfectly with every different touch. It only becomes a problem when another avatar sits down and i need to change previous animated animater that may be laying on the item to sit up. Nothing I do will get this to work the llRequestpermissions is requested for the first avatar is not moved. I remember when writing a Dance Hud I needed a Server and Doll script. However this does not seem necessary if the hud is touched to change animations only if the script does it now this is a little strange as the criteria in on WIKI bellow doesnt say this massive use of scripts is required something LSL tells us t cut back on . Do I understand that the thing I am missing is STATE and i clearly need to set a different STATE before each Request ie Requesting a permission in one state, then changing state before the agent response, will cause run_time_permissions to be fired in the new state once the agent responds. Caveats A dialog is presented to the agent to grant these permissions except when granted automatically as shown in the table above. If object is attached to agent, "automatic" permissions are granted without notification upon request. Permissions persist across state changes. Regardless of whether granting is automatic, you should always use the run_time_permissions event. Granting permissions takes time, and you shouldn't assume it's completed until the run_time_permissions handler gets invoked. The menu-option "Stop Animating Me" will release certain permissions (PERMISSION_TRIGGER_ANIMATION and PERMISSION_OVERRIDE_ANIMATIONS), if the script which holds these permissions is in the same region as the agent, and the script is not attached to the permission granter. Permissions do not accumulate. If a permission was requested with a previous call to this function and granted, then in subsequent call was not requested, that permission is released (lost). To request two or more permissions at the same time, use the bitwise OR (|) operator, e.g.: llRequestPermissions(AvatarID, PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION) Permissions are requested and granted separately for each script, even if they are located in the same object. It is currently not possible to request no permissions at all (see Issues below); as a workaround llResetScript can be used. Scripts may hold permissions for only one agent at a time. To hold permissions for multiple agents you must use more than one script. The result of granting permissions affects the return of llGetPermissions and llGetPermissionsKey immediately, despite the run_time_permissions event being queued, or dropped if the object's event queue is full. Permission request dialogs never time out. If a script makes two permission requests, whichever response is last is considered the granted permissions. The viewer limits permission requests from any agent to any other agent to 5 dialogs in 10 seconds. Permission requests and changing state ... Requesting a permission in one state, then changing state before the agent response, will cause run_time_permissions to be fired in the new state once the agent responds. Requesting only auto-granted permissions in one state, then immediately changing state, will never fire run_time_permissions.
  10. I cant find away to sort this out its very strange I downloaded a move item from wiki This what calls it do_seat_animation(integer i,string l_pos, string l_twist, string l_anim ) { //lines of code key l_key = llJsonGetValue(SEATS_data,["seat"+(string)i,"key"]); llRequestPermissions(l_key, PERMISSION_TRIGGER_ANIMATION); //ask to animate it } I CAN SEE AS THIS IS THE MAIN CALL FOR THE NORMAL SEAT WHY THE KEY IS DIFFERENT. SECONDLY. IF THE KEY WAS BAD IT WOULD NOT GET INO THE RUNTIME PARAMETERS WHICH IT DOES WITH THE CORRECT ANIMATIONS . I AM VERY FRUSTRATED WITH THIS AND WOULD LIKE SOME HELP PLEASE
  11. It should also be noted if the seating reversed this does exactly the same thing
  12. Hi Scribblers and scripters I am noticing my piano is working fine with dual seats until i notice if I store the key of a second person and try to use this in and first is trying in a laying position : As yo can see form the messages the animation for avatar in pink with key abd49e6e-347f-4630-90f2-fe0f7b8817d4 is changed from 'lay back 1' to 'sit lean left leg up1' when the avatar key c14f48db-464c-4ccb-af11-8b58e78d6aa0 sits for some reason the first Animation change does not occur but if set through the menu and same routine from the pink avatar pressing on the seat it does it correctly. This leads me to believe there is something different in storing keys as appose to using them from a JsON string. Has anyone else experianced this as in all other ways it works fine and looks and feels like a bug involving the avatar not pressing with there key and instead key being taken from elsewhere run_time_permissions(integer perm) { if(SIT_STATE==SIT_DEFAULT) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llOwnerSay("In run_time_perms: " + llList2String(output,2)); permissionResult = TRUE; if(last_anim!="")llStopAnimation(last_anim); llStartAnimation(llList2String(output,2)); last_anim = llList2String(output,2); } else { llOwnerSay("failed perms of animation"); llOwnerSay("Permisions to trigger animation '"+llList2String(output,3) +"' failed perms of animation are are: " + (string)getPermsAsReadableString(perm) ); } } else llOwnerSay("SitState ; Issue"); } The animation does not get run
  13. Hi my scripter's and scribblers. I already have a single dance hud which I wrote to do single animations. I am wondering what the complexity of couple animation is like most seem to seem to do this on pose balls but i would rather not . Has anyone done this or principally how do I keep dancers in keyframe ? D I welcome any discussion as its helpful for everyone thank you for looking :)D
  14. @Mollymews hmm i am confused and maybe I was doing it with art not animations . That said I am not sure how it protects intellectual animators property rights of animation as if its in the account of the rights owner how can this be more secure placing it in the item than in your own personal inventory. I can imagine this was done to cut traffic messages for key requests. and is more in line with OOP. I still have not had an answer from Firefox about the 'stand' browser button . It seems this can be pressed in world with no control from a user script behind it . I would like to take control of the exit and walk my passenger or primary seat avatar away. They tell me this problem is the same in the second life viewer too. I understand large physics are being employed to move avatars off seats which doesn't sound like a great idea. I thought changed event fired before the link/unlink but I am not sure it does now. Is there anyway of capturing this unlink so that I can make my avatar look nice standing and walking to a clear spot prior to the unlink .
  15. I tried to move my anims to my inventory and get keys from them and removed them from my item . As soon as i restarted i got could not find animation error messages.Now clearly it will not get a UUID from your inventory for an anim any more . I am sure i remember being able to do this ? Now I can do this with images why cant you with animations ? Are there others you cant too?
  16. Fenix Preload is set float preload_load_time = 0.2; Without Preload it doesnt play well.. Its limps along with it too Timer() { if( i > last_wave_file_number ) { llSay(0, "finished."); sent_to_seat = 0; play = FALSE; avatarkey=NULL_KEY; llSetText(llGetObjectName() + "\n.", <0,1,0>, set_text_alpha); //llResetScript(); llSetTimerEvent(0); } else { llSetSoundQueueing(TRUE); playing_wave_name = _llGetPlayListItem(PLAYLIST_NAME, i); //llWhisper(0, "llPlaySound wav: " + (string)i + " " + (string)llGetInventoryKey(playing_wave_name) ); llPlaySound(playing_wave_name, 1.0); llSetText( /* llGetObjectName() + " - " +*/ llGetSubString(playing_wave_name,0,llStringLength(playing_wave_name)-4) + "\n(playing " + (string)i +" of "+ (string)last_wave_file_number +")\n." , <0,1,1>, set_text_alpha); if(i + waves_to_preload <= last_wave_file_number) { preloading_wave_name = _llGetPlayListItem(PLAYLIST_NAME, i + waves_to_preload); llTriggerSound(_llGetPlayListItem(PLAYLIST_NAME, i + waves_to_preload), 0.0); llPreloadSound(_llGetPlayListItem(PLAYLIST_NAME, i + waves_to_preload)); } } i++; //increment for next wave file in sequence! }
  17. I have been fiddling with this script is there anyway to speed its initial start up please .Its takes a good amount of time to que up the sound files ? SoundOne() { //llOwnerSay("Loading one Song...."); integer c; integer total = llGetListLength(playlist); timer_started = FALSE; float length = total * 9.0; timer_mode_all_by_index = 0; last_wave_file_number = total - 1; for( c = 0; c < total; c ++) { preloading_wave_name =_llGetPlayListItem(PLAYLIST_NAME, c); llSetText(llGetObjectName() + "\n(preloading " + llGetSubString((string)((total - c)*preload_load_time),0,3) + " secs)" +"\n.", <1,0,0>, set_text_alpha); //Attempt to preload first x wave files to local machines cache! llTriggerSound(preloading_wave_name, 0.0); llPreloadSound(preloading_wave_name); //start play sound timer in 'timer_interval' seconds when we are less than 'timer_interval' seconds from // finishing preloading. if ( ((total_wave_files - c) * preload_load_time) < timer_interval && !timer_started) { llSetTimerEvent(timer_interval); timer_started = TRUE; } llSleep(preload_load_time); } i=0; c=0; llSay(0, "Done! Playing.. (" + (string)llFloor(length) + " secs) Click to stop."); }
  18. So this was correct then i thought they stayed with the item is this no longer the case the UUID stays with it ?
  19. Dear Scibblers and scripters, I just to clarify something I was told in a scripting group in world in regard to UUID. I was told I could no longer rely on UUID being valid as they get re-assigned from inventories . I had to use names instead this means i have to put my animations in my build not in my inventory and use UUID. Is this correct or have you heard this being said?
  20. Thanks Molly, Oh lord not an HTTPRequest to do this that is madness. I have tried searching google for one for LSL one but have had no luck outwoldz has not one either!
  21. Dear Scribblers I am trying to cast a string value to a float such as float type = (float)"4*PI/2"; though the string is in a string variable . This seems to bring back 4 not around 6.9. Is there a function to make this evaluate. It also seems it seems float value = (float)"4*3.1472/2"; wont evaluate either if held in string variable. How can i do this calculation from a string please? D
  22. Most Security systems are becoming nicer not teleporting you away but pushing you away from the area . This i much kinder. There are scripts to do this on outworlz
×
×
  • Create New...