Difference between revisions of "LlSetLinkTexture/ru"

From Second Life Wiki
Jump to navigation Jump to search
(Created page with "{{LSL_Function |inject-1={{Issues/SVC-1500}}{{Issues/SVC-3199}}{{Issues/SVC-914}} {{LSL Function/inventory|texture|uuid=true|type=texture|full=*}}{{LSL Function/link-face|link|fa…")
 
 
Line 1: Line 1:
{{LSL_Function
{{LSL_Function/ru
|inject-1={{Issues/SVC-1500}}{{Issues/SVC-3199}}{{Issues/SVC-914}}
|inject-1={{Issues/SVC-1500}}{{Issues/SVC-3199}}{{Issues/SVC-914}}
{{LSL Function/inventory|texture|uuid=true|type=texture|full=*}}{{LSL Function/link-face|link|face}}
{{LSL Function/inventory/ru|texture|uuid=true|type=текстура|full=*}}{{LSL Function/link-face/ru|link|face}}
|func_id=329|func_sleep=0.2|func_energy=10.0
|func_id=329|func_sleep=0.2|func_energy=10.0
|func=llSetLinkTexture
|func=llSetLinkTexture
Line 8: Line 8:
|p3_type=integer|p3_name=face
|p3_type=integer|p3_name=face
|func_footnote
|func_footnote
|func_desc=If a prim exists in the link set at {{LSLP|link}}, set {{LSLP|texture}} on {{LSLP|face}} of that prim.
|func_desc=Если в связанном объекте существует примитив под номером {{LSLP|link}}, установить текстуру {{LSLP|texture}} на его стороне под номером {{LSLP|face}} .
|return_text
|return_text
|spec
|spec
Line 14: Line 14:
|caveats
|caveats
|constants
|constants
|examples=Cover a link set in the texture "bark" (from the library)
|examples=Применить ко всем сторонам всех примитивов связанного объекта библиотечную текстуру.
<lsl>
<lsl>
default
default

Latest revision as of 01:13, 24 August 2012

Общая информация

Function: llSetLinkTexture( integer link, string texture, integer face );

Если в связанном объекте существует примитив под номером link, установить текстуру texture на его стороне под номером face .

• integer link Номер примитива (0: одиночный примитив, 1: корневой примитив, >1:дочерние примитивы) или флаг типа LINK_*
• string texture текстура в инвентаре примитива или UUIDтекстура
• integer face Номер стороны или ALL_SIDES

Если номер стороны face равен ALL_SIDES, то функция срабатывает для всех сторон примитива.

Флаг и значение Описание
LINK_ROOT 1 для корневого примитива[1]
LINK_SET -1 для всех примитивов
LINK_ALL_OTHERS -2 для всех других примитивов
Флаг и значение Описание
LINK_ALL_CHILDREN -3 для всех дочерних примитивов (т.е. все, кроме корневого)
LINK_THIS -4 для примитива, в котором находится данный скрипт

Предостережения

  • После применения этой функции скрипт приостанавливает работу (засыпает) на 0.2 секунд.
  • Если texture отсутствует в инвентаре примитива или пользователь не имеет к нейполного доступа и texture не является Ключом-идентификатором или не является текстураой ,то высвечивается сообщение об ошибке на DEBUG_CHANNEL.
  • If texture is a UUID then there are no new asset permissions consequences for the object.
    • The resulting object develops no new usage restrictions that might have occurred if the asset had been placed in the prims inventory.
  • Если номер стороны примитива face указывает на сторону, которой не существует, функция не срабатывает (при этом не выводится сообщение об ошибке).

Important Issues

~ All Issues ~ Search JIRA for related Bugs
   llSetLinkTexture fails and reports an error on textures created by someone else without full permissions
   llSetLinkTexture(LINK_THIS, foo, bar) does not work for non-full-perm textures.

Примеры

Применить ко всем сторонам всех примитивов связанного объекта библиотечную текстуру. <lsl> default {

   touch_start(integer detected)
   {
       llSetLinkTexture(LINK_SET, "66bf4030-04f9-a808-43ab-b48b6aeb6456", ALL_SIDES);
   }

}

</lsl>

Заметки

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

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

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

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

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

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

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

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

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

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

См. также

Функции

•  llGetLinkNumber Возвращает номер в линке примитива, в котором находится скрипт.
•  llGetLinkNumberOfSides Возвращает количество сторон примитива под определенным номером в связанном объекте (линке).
•  llSetLinkAlpha
•  llSetLinkColor
•  llSetLinkPrimitiveParams

Углублённые заметки

All Issues

~ Search JIRA for related Issues
   llSetLinkTexture fails and reports an error on textures created by someone else without full permissions
   llSetLinkTexture(LINK_THIS, foo, bar) does not work for non-full-perm textures.
   CHANGED_TEXTURE is not triggered when texture is changed via script

Сноски

  1. ^ LINK_ROOT не работает с объектами, состоящими из одного примитива!

Описания

function void llSetLinkTexture( integer link, string texture, integer face );