Хочешь узнать как попасть в Second Life?

 

 

Русификатор для клиента Second Life версии 1.20.15.92456

Патч загружен 9759 раз
Подробнее о русификаторе

 



Зарегистрироваться
Вспомнить пароль

Top-10


Первые шаги в Second Life. Часть 1

Регистрация аккаунта

Как заработать в Second Life легко и быстро!

Русификация SL-клиента

Халява, сэр!

LSL. Основы. Часть 1

Системные требования

Любовь единорога - это прекрасно!

Управляем "собой"

Москва в Second Life – это, безусловно, товарищество. Часть 1

 
     

Сейчас на сайте

Сейчас на сайте 2 пользователя и 19 гостей.

Пользователи на сайте

  • Oxy Jewell
  • dimm Torok

Объявления


Конкурс "Русская машинима Second Life"

BCC present: HALLOWEEN

GOA party

Школа "SecondRussia"

Награждение участников конкурса "Здравствуй, школа!"

 
     

Афиша


В ближайшие дни в Second Life:

Афиша: интересные события в Second Life 21 ноября – 23 ноября 2008 года

Концерт из Санкт-Петербурга

Афиша: интересные события в Second Life 14 ноября – 16 ноября 2008 года

Ежемесячная фотосессия: Cienega Soon

Международный день борьбы со СПИДом в Second Life

 
     

LSL. Основы. Часть 4

Автор: Zuba Zenovka      Время публикации: 17:32, 28.06.07
Темы:

Types, typecasting

Переменные, параметры функций и возвращаемые значения имеют типы данных. LSL поддерживает 7 основных типов данных.

  • integer - целое число в диапазоне от -2,147,483,648 до 2,147,483,647
  • float - десятичное число с плавающей точкой в диапазоне от 1.175494351E-38 до 3.402823466E+38
  • vector - три float в форме < x , y , z >. Используются для обозначения позиции, цвета или для Эйлер-вращений
  • rotation - вращение, до четырех float в форме < x , y , z , s >
  • key - UUID (специальная строка) используется для идентификации внутри SL, агентов, объектов, звуков, текстур, предметов инвентаря и запросов к dataserver
  • string - последовательность символов лимитированная только размером свободной памяти скриптов (смотрите LSL. Основы. Часть 3)
  • list - список значений переменных одного или нескольких типов, используется вместо массивов

Одни типы данных можно переводить в другие. Для этого используются выражения вида ((новый тип)выражение). Типы данных всегда должны соответствовать тем, которые требуется передать другой переменной или функции. При несоответствии необходимо выполнить приведение типов. Лишь в двух случаях специальная конвертация не требуется: при передачи integer в float и string в key.

В качестве примера приведем упоминавшуюся в прошлых частях функцию llSay, которая требует передачи ей типа string для вывода текста. Если нам понадобится вывести переменную другого типа, мы должны будем выполнить приведение типов. Переменная i типа integer переводится в тип string и передается функции llSay.

Пример 1
Пример 1

Вспомним и последний пример из третьей части нашего руководства.

Пример 2
Пример 2

Здесь возвращаемое функцией llGetFreeMemory значение также имеет тип integer, мы же его переводим в тип string и передаем следующей функции.

Color Vector

Рассмотрим тип вектор, который является тройным числом типа float. В LSL он форматируется в виде . Вектор используется для указания трехмерного местоположения, направления, скорости, силы, импульса, цвета и оси вращения Эйлера. К каждому компоненту вектора можно получить доступ через ".x" , ".y" , ".z".

Остановимся на векторе цвета. В LSL для обозначения цвета используются вектор, содержащий три значения с плавающей точкой - от 0.0 до 1.0 для красного, зеленого, синего.

Например, vector color=<1.0, 0.5, 0> расшифровывается как "100% красного, 50% процентов зеленого и 0% синего" - это параметры оранжевого цвета.

Попробуем создать скрипт, который будет изменять цвет объекта при прикосновении к нему. Для этого еще раз обратимся к материалу третьей части нашего руководства и используем (state) для создания изменений в пределах двух цветов, например, красного и зеленого. Для этого нам потребуется функция смены цвета объекта llSetColor().

llSetColor

Синтаксис: llSetColor(vector color, integer face)
Описание: устанавливает цвет стороны объекта; если необходимо перекрасить весь объект, используется константа ALL_SIDES.

Стороны объекта мы рассмотрим далее, сейчас же будем пользоваться константой ALL_SIDES и получим в итоге следующий скрипт:

Пример 3
Пример 3

Проверим его в работе.

Красный куб

Зеленый куб
Скрипт в действии - куб меняет свой цвет с красного на зеленый

Обратите внимание на особенность touch_start - если вы нажмете на объект и не будете отпускать кнопку, он станет моргать двумя цветами попеременно. Это связано с тем, что событие touch_start начинает выполнение в начале нажатия (см. Часть 2). Соответственно и при передаче управления в state green срабатывает событие touch_start. Для избежания такой ситуации используйте события touch_end, touch().

К компоненту любого вектора, в том числе и цвета, можно обращаться напрямую. Эти компоненты будут иметь тип float и для того чтобы с ними работать, например, вывести в чат, их нужно привести к типу string.

Пример 4
Пример 4

Теперь объект сменит цвет на оранжевый, если на него нажать, и напишет в общий чат компоненты вектора цвета.

Оранжевый куб
Результат работы скрипта

Для упрощения "кодирования" цвета в тип вектор воспользуйтесь этой таблицей.

Комментарии
Manoul Carnell 22:59, 28.06.07 ссылка

Без придирок: слишком сложно для "основ".

Маленькая девочка не может пнуть кошку. Она зовет на помощь бабушку.

Ответить
Koshachii Xeno 23:48, 28.06.07 ссылка

Ну не совсем ведь для детского сада пишется.
Кто не сможет сделать вышеперечисленное, прочитав предыдущие части, тому не стоит заниматься скриптингом в SL.

Ответить
SOb Zemlja 03:20, 29.06.07 ссылка

«Кто не сможет сделать вышеперечисленное…»

  • LSL. Основы. Часть 4 — Для тех, у кого ничего не получилось или как убить себя об стену

:)

Ответить
SOb Zemlja 03:21, 29.06.07 ссылка

Вернее — 5-я.

Ответить
Marie 03:12, 29.06.07 ссылка

Пасибы clap

Ответить



Свежие комментарии


Manoul Carnell пишет в Фонтан мыслей Twitter от Daden  

Manoul Carnell пишет в Количество участков в Second Life продолжает падать  

Yarosh Nohkan пишет в The Three Graces  

Manoul Carnell пишет в Настоящие лица резидентов  

Lokos пишет в LindenLab забанили Вторую Москву  

delomann пишет в FAQ по голосовой функциональности в SL. Часть 4  

delomann пишет в Будни футбольного клуба и мертвый черный лебедь  

Oksana Quintessa пишет в Oksana Quintessa RL  

delomann пишет в Резиденты Second Life пожертвовали 200000 долларов США для американского общества борьбы с раком  

Sunnyk пишет в 80% пользователей Интернет уйдут в Second Life  

 
   

Галерея


Последнее добавленное изображение.
Самое популярное изображениеСлучайное изображение
 
     

Каталог

русскоязычных ресурсов, посвященных Second Life
 
     

Подписка

RSS лента статей

RSS лента новостей

RSS лента блогов

Партнеры

sm_sl.gif

rz_sl.gif

Статистика




Rambler's Top100

количество читателей онлайн и всего