Difference between revisions of "Template:LSL Function/Pass"

From Second Life Wiki
Jump to navigation Jump to search
m
m
Line 63: Line 63:
{{#vardefine:deepnotes|{{#vardefine:deepnotes|}}{{PBR}}
{{#vardefine:deepnotes|{{#vardefine:deepnotes|}}{{PBR}}
==== [[TRUE]] & [[FALSE]] vs. PASS_* flags ====
==== [[TRUE]] & [[FALSE]] vs. PASS_* flags ====
Prior to Server Version 1.40.2, for this function 0 and 1 were the only meaningful values and {{LSLPT|{{{1|}}}}} was couched in terms of being a [[:Category:LSL_Integer/boolean|boolean]]. The best practice at that time was to use the integer constants [[TRUE]] and [[FALSE]]. The design of this function left much to be desired. The problem was that while [[TRUE]] always caused all {{{3}}} to be passed along to the the root, [[FALSE]] would only not pass {{{3}}} if there the prim had a script that handled a {{{2}}} event. This meant to fully utilize this function the prim must contain a script that handled {{{2}}} events! With the release of Server Version 1.40.2, the PASS_* flags were introduced and the subtype of the {{LSLPT|{{{1|}}}}} was changed. Specifically the introduction of {{#var:PASS_NEVER}} solved this problem, allowing content creators to eliminate scripts that were only in the object to tweak the passing of {{{2}}} events.
Prior to Server Version 1.40.2, {{LSLPT|{{{1|}}}}} was couched in terms of being a [[:Category:LSL_Integer/boolean|boolean]] and the only meaningful values were 0 and 1. The best practice at that time was to use the integer constants [[TRUE]] and [[FALSE]]. The design of this function left much to be desired. The problem was that while [[TRUE]] always caused all {{{3}}} to be passed along to the the root, [[FALSE]] would only not pass {{{3}}} if there the prim had a script that handled a {{{2}}} event. This meant to fully utilize this function the prim must contain a script that handled {{{2}}} events! With the release of Server Version 1.40.2, the PASS_* flags were introduced and the subtype of the {{LSLPT|{{{1|}}}}} was changed. Specifically the introduction of {{#var:PASS_NEVER}} solved this problem, allowing content creators to eliminate scripts that were only in the object to tweak the passing of {{{2}}} events.
}}
}}
}}
}}

Revision as of 20:41, 1 January 2016

#var value
p__desc PASS_* flag
also_functions
constants_nb
Constant Value Script No Script Description
PASS_IF_NOT_HANDLED 0 not passed passed {{{3}}} are passed if there is no script handling the event in the prim.
PASS_ALWAYS 1 passed passed {{{3}}} are always passed to the root.
PASS_NEVER 2 not passed not passed {{{3}}} are never passed to the root.
caveats
  • Has no known effect if called from within the root prim.
spec
deepnotes

TRUE & FALSE vs. PASS_* flags

Prior to Server Version 1.40.2, was couched in terms of being a boolean and the only meaningful values were 0 and 1. The best practice at that time was to use the integer constants TRUE and FALSE. The design of this function left much to be desired. The problem was that while TRUE always caused all {{{3}}} to be passed along to the the root, FALSE would only not pass {{{3}}} if there the prim had a script that handled a {{{2}}} event. This meant to fully utilize this function the prim must contain a script that handled {{{2}}} events! With the release of Server Version 1.40.2, the PASS_* flags were introduced and the subtype of the was changed. Specifically the introduction of PASS_NEVER solved this problem, allowing content creators to eliminate scripts that were only in the object to tweak the passing of {{{2}}} events.