Difference between revisions of "Template:LSL Function/link/ru"

From Second Life Wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 17: Line 17:


{{#vardefine:p_{{{1|}}}_desc|[[Link/ru|Номер]] примитива (0: {{HoverText|одиночный примитив|Если объект состоит из одного примитива, то его номер 0, а не 1.}}, 1: корневой примитив, >1:дочерние примитивы) {{#if:{{{nlf|}}}||или [[flag|флаг]] типа LINK_* }}{{{2|}}} }}
{{#vardefine:p_{{{1|}}}_desc|[[Link/ru|Номер]] примитива (0: {{HoverText|одиночный примитив|Если объект состоит из одного примитива, то его номер 0, а не 1.}}, 1: корневой примитив, >1:дочерние примитивы) {{#if:{{{nlf|}}}||или [[flag|флаг]] типа LINK_* }}{{{2|}}} }}
{{#vardefine:p_{{{1|}}}_hover|Link number (0: unlinked, 1: root prim, >1: child prims) {{#if:{{{nlf|}}}||or a LINK_* flag}}{{#if:{{{3|}}}|{{{3|}}}|{{{2|}}}}} }}
{{#vardefine:p_{{{1|}}}_hover|Номер примитива (0: одиночный примитив, 1: корневой примитив, >1: дочерние примитивы) {{#if:{{{nlf|}}}||или флаг типа LINK_*}}{{#if:{{{3|}}}|{{{3|}}}|{{{2|}}}}} }}


{{#if:{{{nocaveats|}}}||{{#if:{{{nogroup|}}}|
{{#if:{{{nocaveats|}}}||{{#if:{{{nogroup|}}}|
{{#vardefine:caveats|
{{#vardefine:caveats|
*{{LSLP|{{{1|}}}}} needs to be either an actual [[llGetLinkNumber|link number]] or a link constants that equate to a single prim, such as [[LINK_ROOT]] and [[LINK_THIS]].
*{{LSLP|{{{1|}}}}} должен быть либо численным значением [[llGetLinkNumber|номера примитива]] либо константой, как например [[LINK_ROOT]] и [[LINK_THIS]].
**[[LINK_SET]], [[LINK_ALL_CHILDREN]] and [[LINK_ALL_OTHERS]] will not work.
**[[LINK_SET]], [[LINK_ALL_CHILDREN]] и [[LINK_ALL_OTHERS]] здесь не работают.
{{#var:caveats}}}}
{{#var:caveats}}}}
}}}}
}}}}


{{#vardefine:notes|
{{#vardefine:notes|
<h3>Link Numbers</h3>
<h3> Номера примитивов в объекте</h3>
Каждый примитив в связанном объекте имеет свой порядковый номер. Для получения доступа к определенному примитиву внутри объекта необходимо знать его номер. Номера имеют также аватары, которые сидят на данном объекте.
Каждый примитив в связанном объекте имеет свой порядковый номер. Для получения доступа к определенному примитиву внутри объекта необходимо знать его номер. Номера имеют также аватары, которые сидят на данном объекте.
* Если объект состоит из одного примитива, и на нём не сидит аватар, то номер этого (корневого) примитива равен 0 (не 1).
* Если объект состоит из одного примитива, и на нём не сидит аватар, то номер этого (корневого) примитива равен 0 (не 1).
Line 48: Line 48:


{{#vardefine:also_functions|{{#var:also_functions}}
{{#vardefine:also_functions|{{#var:also_functions}}
{{LSL DefineRow||[[llGetLinkNumber]]|Returns the link number of the prim the script is in.}}}}
{{LSL DefineRow||[[llGetLinkNumber]]|Возвращает номер в линке примитива, в котором находится скрипт.}}}}


}}<noinclude>
}}<noinclude>

Latest revision as of 01:56, 24 August 2012

#var value
p__desc Номер примитива (0: одиночный примитив, 1: корневой примитив, >1:дочерние примитивы) или флаг типа LINK_*
also_functions
•  llGetLinkNumber Возвращает номер в линке примитива, в котором находится скрипт.
constants_nb
Флаг и значение Описание
LINK_ROOT 1 для корневого примитива[1]
LINK_SET -1 для всех примитивов
LINK_ALL_OTHERS -2 для всех других примитивов
Флаг и значение Описание
LINK_ALL_CHILDREN -3 для всех дочерних примитивов (т.е. все, кроме корневого)
LINK_THIS -4 для примитива, в котором находится данный скрипт
notes

Номера примитивов в объекте

Каждый примитив в связанном объекте имеет свой порядковый номер. Для получения доступа к определенному примитиву внутри объекта необходимо знать его номер. Номера имеют также аватары, которые сидят на данном объекте.

  • Если объект состоит из одного примитива, и на нём не сидит аватар, то номер этого (корневого) примитива равен 0 (не 1).
  • Однако, если объект состоит из нескольких примитивов и/или на нём сидит аватар, то номер корневого примитива равен 1.

Когда аватар садится на объект, он становится в конце списка примитивов и ему присваивается наибольший номер. В дополнение к этому, когда аватар сидит на объекте, этот объект не может прикреплять или откреплять примитивы, не заставив аватар встать.

Вывод количества примитивов и аватаров

Для вывода количества примитивов и сидящих аватаров есть две функции.

  • llGetNumberOfPrims() - Возвращает количество примитивов и сидящих аватаров.
  • llGetObjectPrimCount(llGetKey()) - Возвращает только количество примитивов в объекте. Не работает (возвращает всегда 0) для объектов, прикрепленных к аватару (т.н. аттачментов).

<lsl>integer GetPrimCount() { //Всегда возвращает только количество примитивов в объекте

   if(llGetAttached())//Объект прицеплен к аватару
       return llGetNumberOfPrims();//т.к. на аттачментах нельзя сидеть, возвращает только примитивы
   return llGetObjectPrimCount(llGetKey());//только число примитивов для не аттачмента

}</lsl>Более подробно смотрите в статье llGetNumberOfPrims.