-
Notifications
You must be signed in to change notification settings - Fork 2
Changelog nPose V4.00
-
added command condition to each and every command: COMMAND{condition}|... condition can be: "owner", "group", "seated", an integer (seatnumber), an integer (seatnumber) followed by ".empty", @macro or UDP
-
Commands removed: ANIM, SCHMO, SCHMOE
-
Command added: SEAT_INIT|numberOfSeats (replaces ANIM) (best practice: use it only once and use it inside the .init Card) XANIM|seatNumber[|csv animations[|pos[|rot[|facials]]]] (replaces SCHMO(E))
-
Command added: DEF|keyword|seatNumber=value[|seatNumber=value...] With this command the user is able to manipulate the Slots list. For Examples: DEF|seatName|1=name1|2=name2 DEF|seatPerm|*=group|1=owner Keywords (case insensitive): seatName, seatPerm, animName, animPos, animRot, animFacials, animNcName, animCommand, sitterKey, sitterType, sitterName Some (most?) of this stuff will not be used by the user directly but it may be usefull to do so from inside of some plugins (for example the unreleased Buddy Plugin)
-
Command added: UNSIT|csv list of seatNumbers (or avatar keys) or "*" (all) or "others" (all but me)
-
Command added: SWAP|(csv) two seatNumbers
-
Command changed: LINKMSG will not fire inside the props anymore, use PROP_DO|... intead doesn't support the pause parameter anymore will not add the menu user to the id part automaticly anymore
-
Command added: BUDDY_ON_SIT & BUDDY_ON_UNSIT: only useful with the unreleased Buddy Plugin
-
Command added: PROP_DO, PROP_DO_ALL, PARENT_DO, PARENT_DO_ALL, DIE, TEMPATTACH, POS, ROT: only be useful with the new Prop Plugin
-
Command changed: UDPLIST now supports "+=" and "-=" as operators
-
Command changed: UDPBOOL: added a toggle operator. exapmple: UDPBOOL|myBool=!
-
Command changed: PLUGINCOMMAND|name, num[, sendUntouchedParams][|name...]... old syntax still working
-
implemented the following commands in SAT/NOTSAT plugin: ON_ENTER|seatNumbers|command //triggers if someone enters a specific slot in the Slots list ON_EXIT|seatNumbers|command //triggers if someone leaves a specific slot in the Slots list ON_NEW|seatNumbers|command //triggers if someone new sits on the object ON_LOST|seatNumbers|command //triggers if someone unsits from the object. seatNumbers: csv list of numbers or * as a wildcard ON_ALL_EMPTY|command //triggers if the Slots list was not empty but is empty now. ON_ALL_NOT_EMPTY|command //triggers if the Slots list was empty but is not empty anymore. ON_ALL_FULL|command //triggers if the Slots list was not full but is full now. ON_ALL_NOT_FULL|command //triggers if the Slots list was full but is not full anymore.
-
ALL ON_X commands are supporting a csv list or a wildcard as seatNumber
-
ALL ON_X commands can be cleared by leaving the command blank. Example: ON_SIT|*
-
All ON_X commands (but ON_(UN)SIT) survive a SEAT_INIT command (to be discussed)
-
All ON_X commands (but ON_(UN)SIT) survive a XANIM command (to be discussed)
-
some Bugfixes
-
added global Option eventSitterType(=integer bitmask) 0: invalid (no ON_X command will trigger) 1: (default)only Avatars will trigger a ON_X command 2: only Buddies will trigger a ON_X command 3: Avatars and Buddies will trigger a ON_X command
-
Slots List changed (stride & content)!!! That means that all plugins that uses the SEAT_UPDATE message have to be adapted for nPose V4! I defined a new SEAT_UPDATE format and a new number (to prevent old plugins from going crazy). The new SEAT_UPDATE message is send with the number 251 and with a preamble which contains the stride value so that future changes to the Slots list will not result in no working plugins anymore. New format: preamble^DumpOfTheSlotsList preamble begins with: strideValue^preambleLength So the plugin can read the strideValue and then remove the preamble by strippring the first x(=preambleLength) elements of the list.
-
added seat permissions: DEF|seatPerm|seatNumber=permission[|seatNumber=permission ...] seatNumber: an integer, the wildcard:*, a slash separeted list of integers or wildcards permission: same as command conditions seatPermissions are only evaluated if someone sits down, not when someone swap seats
-
removed all PROP releated stuff from the core (use the new Prop plugin instead)
-
slave now supports animesh adjusters. Note: the z value of the pos is not compatible with nPose V3, see github issue #24 Note: To use this, your animation needs to have at least the copy permission.
-
Menu: is able to use the nPose MenuMemoryExtension Plugin
-
added the global Option: onMenuForbiddenMessage=yourMessage the message will be send to you via llRegionSayTo if you press a button that is no longer valid. Default: blank (no Message)
-
added the global Option: onMenuForbiddenRemenu (0: no remenu, 1:(default) remenu with a valid path as near as possible to your current selection.)
-
changed the way Macros and UDPs are distributed: now only the core parses the MACRO/UDPBOOL/UDPLIST commands and sends the updated marco/udp list via linkmessage UPDATE_UDP=-808 and UPDATE_MACRO=-809. I added an example script with setter and getter.
-
the prop plugin is very large, so I optimized it with the online version of Sei Lisa LSL PyOptimizer: http://lsl.blacktulip-virtual.com/lsl-pyoptimizer/ The result is an unreadable script about 6KB smaller than the source. so there are 2 possibilities: a) ship the (unreadable) optimized version or b) remove some major features
-
if you want to use props, you have to place the prop script into the prop AND into the main nPose object
-
no more pause or timer stuff is needed after the PROP command. Everything is queued and executed as fast as possible.
-
it should be possible for the user to compile the prop Plugin with their own experience (TODO: issue #33 has to be solved)
-
command changed: PROP|propName|pos|rot[|groupNumber|[csv flags[|namespace]]] flags: quiet: same as the old. npose: use this if the nPose core script is inside the prop. noparentcheck: if set then the prop will not die with the parent scalepos: the prop will will rezz at the given position multipled with the scaling factor of the parent object scalesize: the prop will be resized so it matches the scaling factor of the parent object namespace: usualy blank. Is used in plugins to make props of that plugin independent of user rezzed props
-
command added: PROP_DO|propname|csv propGroup|propNameSpace|nPose command ...
-
command added: PROP_DO_ALL (TODO:to be defined)
-
command added: PARENT_DO|nPoseCommand
-
command added: PARENT_DO_ALL (TODO:to be defined)
-
command added: COPY|item[|item...] copies the items from the parent inventory to own invetory (all types but scripts)
-
command added: POS|pos moves the Prop to position pos, where pos is in "NC" coordinates (relative to parent object and to be scalesd if the scale flag is set)
-
command added: ROT|rot rotates the Prop to the rotation rot, where rot is in "NC" coordinates (relative to parent object)
-
command added: [TEMP]ATTACH|target[|attachmentPoint[|allowInsecureMessages[|PermissionRequestTimeout[|AttachTimeout]]]] //target: Avatar UUID or seat number //attachmentPoint: integer, see http://wiki.secondlife.com/wiki/LlAttachToAvatarTemp //allowInsecureMessages: if a prop gets temp attached to a user different to the nPose object owner, // the communication from this prop to its parent is blocked per default for security reasons. // But there may be some cases where you want to allow the communication to the parent. // 0: (default) no communication to the parent if the owner changes. // This is secure. // 1: communication to the parent is allowed if the prop is set to noMod for next owner. // This should be fairly secure *** as long as the prop doesn't rez any new prop *** // 2: communication to the parent is allowed. // This is totaly unsecure and allows the next owner to control your nPose Object //PermissionRequestTimeout: float, seconds, default=60; If set to 0: no timeout -> the prop will not die //AttachTimeout: float, seconds, default=5; (From the LSL wiki: The attach step is not guaranteed to succeed) If set to 0: no timeout -> the prop will not die
-
command changed: PROPDIE is marked as deprcated: use PROP_DO|propName|propGroupNumber|propNameSpace|DIE instead propNameSpace is usualy blank
-
commands defined with PLUGINCOMMAND are known inside the Props
The idea behind this is to allow props as "sitters". In this plugin I allow Animesh enabled props as sitters. (it is not designed for replacing your animesh plugin (which seems to be a lot more capable of doing funny advanced stuff), but to get a easy and light weighted option to add NPCs to your nPose Object.
Note: To use this, your animation needs to have at least the copy permission.
BUDDY|seatNumber|PropName|ruleset ruleset: If this is evaluated to TRUE, then the Object with the name PropName will be rezzed. Keywords: manual: disables the automatic rezz/derezz empty: TRUE if no Avatar sits on the nPose Object any integer: counts as a seatNumber. TRUE if an avatar is sitting on that seat any string that begins with @: is a macro any other string: counts as a UDP Bool
BUDDY_ENABLE|csv seatNumber or wildcard * BUDDY_DISABLE|csv seatNumber or wildcard *
BUDDY_ON_SIT: (to be defined) BUDDY_ON_UNSIT: (to be defined)
-
Getting started
-
Reference
-
Changelogs
-
Internals