Difference between revisions of "LlSetLinkColor/ru"

From Second Life Wiki
Jump to navigation Jump to search
Line 1: Line 1:
{{LSL_Function/ru
{{LSL_Function/ru
|inject-2={{LSL Function/color/ru|color}}{{LSL_Function/link-face|link|face}}
|inject-2={{LSL Function/color/ru|color}}{{LSL_Function/link-face/ru|link|face}}
|func_id=140|func_sleep=0.0|func_energy=10.0
|func_id=140|func_sleep=0.0|func_energy=10.0
|func=llSetLinkColor
|func=llSetLinkColor
Line 24: Line 24:
|helpers
|helpers
|also_functions=
|also_functions=
{{LSL DefineRow||[[llGetAlpha]]|Gets the prim's alpha}}
{{LSL DefineRow||[[llGetAlpha]]|Возвращает значение прозрачности примитива, в котором находится скрипт.}}
{{LSL DefineRow||[[llSetAlpha]]|Sets the prim's alpha}}
{{LSL DefineRow||[[llSetAlpha]]|Задаёт прозрачность примитива, в котором находится скрипт.}}
{{LSL DefineRow||[[llGetColor]]|Gets the prim's color}}
{{LSL DefineRow||[[llGetColor]]|Возвращает вектор цвета примитива, в котором находится скрипт.}}
{{LSL DefineRow||[[llSetColor]]|Sets the prim's color}}
{{LSL DefineRow||[[llSetColor]]|Задаёт цвет примитива, в котором находится скрипт.}}
{{LSL DefineRow||[[llSetLinkAlpha]]|}}
{{LSL DefineRow||[[llSetLinkAlpha]]|}}
{{LSL DefineRow||[[llSetLinkTexture]]|}}
{{LSL DefineRow||[[llSetLinkTexture]]|}}

Revision as of 08:11, 20 August 2012

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

Function: llSetLinkColor( integer link, vector color, integer face );

If a prim exists in the link set at link, set color on face of that prim.

• integer link Номер примитива (0: одиночный примитив, 1: корневой примитив, >1:дочерние примитивы) или флаг типа LINK_*
• vector color Цвет в палитре RGB <R, G, B> (<0.0, 0.0, 0.0> = Черный, <1.0, 1.0, 1.0> = Белый)
• 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 для примитива, в котором находится данный скрипт

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

  • Если номер стороны примитива face указывает на сторону, которой не существует, функция не срабатывает (при этом не выводится сообщение об ошибке).

Примеры

Turn a link set green <lsl> default {

   touch_start(integer detected)
   {
       llSetLinkColor(LINK_SET, <0.0, 1.0, 0.0>, ALL_SIDES);
   }

}

</lsl>

Заметки

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

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

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

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

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

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

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

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

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

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

См. также

События

•  changed CHANGED_COLOR

Функции

•  llGetLinkNumber Возвращает номер в линке примитива, в котором находится скрипт.
•  llGetLinkNumberOfSides Возвращает количество сторон примитива под определенным номером в связанном объекте (линке).
•  llGetAlpha Возвращает значение прозрачности примитива, в котором находится скрипт.
•  llSetAlpha Задаёт прозрачность примитива, в котором находится скрипт.
•  llGetColor Возвращает вектор цвета примитива, в котором находится скрипт.
•  llSetColor Задаёт цвет примитива, в котором находится скрипт.
•  llSetLinkAlpha
•  llSetLinkTexture
•  llSetLinkPrimitiveParams

Статьи

•  Color in LSL

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

Search JIRA for related Issues

Сноски

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

Описания

function void llSetLinkColor( integer link, vector color, integer face );