OSSL vs LSL

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m (What do you mean by "no WYSIWYG table editor ?")
m
Line 18: Line 18:
 
| llGetPrimitiveParams<br/>llSetPrimitiveParams || [[osGetPrimitiveParams]]<br/>[[osSetPrimitiveParams]] || K || Acts on out-of-linkset primitive (uuid instead of linknumber)
 
| llGetPrimitiveParams<br/>llSetPrimitiveParams || [[osGetPrimitiveParams]]<br/>[[osSetPrimitiveParams]] || K || Acts on out-of-linkset primitive (uuid instead of linknumber)
 
|-
 
|-
|| || [[osSetProjectionParams]] || H L K || Same effect can be obtained with llSetLinkPrimitiveParams (linknum, [PRIM_PROJECTOR]) but OSSL version has osSetPrimitiveParams power to work out-of-linkset by uuid.
+
|| || [[osSetProjectionParams]] || H L K || Same effect can be obtained with llSetLinkPrimitiveParams (linknum, [PRIM_PROJECTOR]) but OSSL version has osSetPrimitiveParams power to work outside linkset.
 
|-
 
|-
 
| llCreateLink<br\>llBreakLink<br\>llBreakAllLinks || [[osForceCreateLink]]<br/>[[osForceBreakLink]]<br\>[[osForceBreakAllLinks]] || || Does not require PERMISSION_CHANGE_LINKS
 
| llCreateLink<br\>llBreakLink<br\>llBreakAllLinks || [[osForceCreateLink]]<br/>[[osForceBreakLink]]<br\>[[osForceBreakAllLinks]] || || Does not require PERMISSION_CHANGE_LINKS
Line 34: Line 34:
 
| llAvatarOnSitTarget<br/>llAvatarOnLinkSitTarget || [[osGetSittingAvatarsCount]]()<br/>[[osGetSittingAvatarsCount]](uuid) || H K || OSSL function returns the total number of avatars sitting on a linkset. LSL functions apply only to avatars on sittarget (return NULL_KEY if sittarget is not set) and cannot operate outside the linkset. A similar result can be obtained with llGetObjectDetails(uuid, [OBJECT_SIT_COUNT]).
 
| llAvatarOnSitTarget<br/>llAvatarOnLinkSitTarget || [[osGetSittingAvatarsCount]]()<br/>[[osGetSittingAvatarsCount]](uuid) || H K || OSSL function returns the total number of avatars sitting on a linkset. LSL functions apply only to avatars on sittarget (return NULL_KEY if sittarget is not set) and cannot operate outside the linkset. A similar result can be obtained with llGetObjectDetails(uuid, [OBJECT_SIT_COUNT]).
 
|-
 
|-
| llStartAnimation<br/>llStopAnimation ||[[osAvatarPlayAnimation]]<br/>[[osAvatarStopAnimation]] || A || Does not require PERMISSION_TRIGGER_ANIMATION
+
| llStartAnimation<br/>llStopAnimation ||[[osAvatarPlayAnimation]]<br/>[[osAvatarStopAnimation]] || A || Does not require PERMISSION_TRIGGER_ANIMATION<br/>OSSL can animate multiples avatars, when LSL is bound to the avatar having granted the permission.
 +
|-
 +
| llAttachToAvatar<br/> llDetachFromAvatar || [[osForceAttachToAvatar]]<br/>[[osForceDetachFromAvatar]] || A || Does not require PERMISSION_ATTACH.<br/>Target avatar is implicit. To attach explicitely to a given avatar, use osForceAttachToOtherAvatarFromInventory on the avatar's key.
 
|}
 
|}

Revision as of 11:50, 15 June 2023

This page to highlight the difference between OSSL and LSL functions when similar versions exist.

Work in progress, not to be linked now.

H : Target is the script's host (the prim containing the script)
L : Target is prim in the linkset, adressed by link number
K : Target is any prim you own, adressed by key (inside or outside linkset)
A : Target is an avatar

When a function is marked as supporting different adressing modes, these are overloads (a.k.a. 'variants') selected at compile time according to the parameter types.


llGetLinkPrimitiveParams osGetLinkPrimitiveParams L Allows for multiple-link constants LINK_SET, LINK_ALL_CHILDREN. Returns a by-side list of properties.
llSetLinkPrimitiveParams L No need for OSSL version since llSetLinkPrimitiveParams accepts all LINK_* flags
llGetPrimitiveParams
llSetPrimitiveParams
osGetPrimitiveParams
osSetPrimitiveParams
K Acts on out-of-linkset primitive (uuid instead of linknumber)
osSetProjectionParams H L K Same effect can be obtained with llSetLinkPrimitiveParams (linknum, [PRIM_PROJECTOR]) but OSSL version has osSetPrimitiveParams power to work outside linkset.
llCreateLink
llBreakLink
llBreakAllLinks
osForceCreateLink
osForceBreakLink
osForceBreakAllLinks
Does not require PERMISSION_CHANGE_LINKS
llParticleSystem
llLinkParticleSystem
osParticleSystem
osLinkParticleSystem
H
L
llSitTarget
llLinkSitTarget
osSetStandTarget
osSetLinkStandTarget
H
L
Set the position of the feet of the avatar, when ll version set the position of the Agent Target (Developer > Avatar > Display Agent Target)
llPlaySound
llLoopSound
llTriggerSound
...
osPlaySound
osLoopSound
osTriggerSound
...
L All OSSL sound functions takes a linknumber argument.
llLinkPlaySound L Universal link sound function (SOUND_PLAY, SOUND_LOOP, SOUND_TRIGGER, SOUND_SYNC). Equivalent to resp. osPlaySound, osLoopSound, osTriggerSound, osPlaySoundSlave, osLoopSoundSlave.
llGetNumberOfPrims
llGetObjectPrimCount
osGetPrimCount()
osGetPrimCount(uuid)
H K OSSL version does not count sitting avatars and does work on attachments
llAvatarOnSitTarget
llAvatarOnLinkSitTarget
osGetSittingAvatarsCount()
osGetSittingAvatarsCount(uuid)
H K OSSL function returns the total number of avatars sitting on a linkset. LSL functions apply only to avatars on sittarget (return NULL_KEY if sittarget is not set) and cannot operate outside the linkset. A similar result can be obtained with llGetObjectDetails(uuid, [OBJECT_SIT_COUNT]).
llStartAnimation
llStopAnimation
osAvatarPlayAnimation
osAvatarStopAnimation
A Does not require PERMISSION_TRIGGER_ANIMATION
OSSL can animate multiples avatars, when LSL is bound to the avatar having granted the permission.
llAttachToAvatar
llDetachFromAvatar
osForceAttachToAvatar
osForceDetachFromAvatar
A Does not require PERMISSION_ATTACH.
Target avatar is implicit. To attach explicitely to a given avatar, use osForceAttachToOtherAvatarFromInventory on the avatar's key.
General
About This Wiki