Урок 2 ​Переменные

Тип статьи:
Авторская
Вернемся к нашему скрипту:

default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}

Он делает две вещи.

1. При запуске этого скрипта один раз появиться сообщение: «Hello, Avatar!»

2. Теперь к вашему объекту можно будет прикоснуться (нажать мышкой). К тому-же при каждом касании объекта, в общем чате будет появляться сообщение: «Touched.»

Давайте уберем событие, которое обрабатывает старт скрипта, вместе с функцией, которая при старте пишет «Hello, Avatar!». Вот оно:

state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

После этого, у нас остается такой код:

default
{

    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}

Теперь скрипт только пишет при щелчке мышкой на объекте «Тоuched.».

Но это не так интересно. Попробуем написать код таким образом, чтобы скрипт определял Ник (имя) человека, который его коснулся, и отправлял это сообщение в общий чат.

Для этого мы используем функцию:  string llDetectedName( integer index )

ВНИМАНИЕ!

llDetected * функции работают, только если вызывается из событий обнаружения:

(collision, collision_start, collision_end, sensor, touch, touch_start, touch_end)

string — Строка, которая возвращает функция. В этой строке будет содержаться имя (ник) аватара, который дотронется до вашего объекта (щелкнет по нему мышкой).

integer — Целое число, индекс обнаружения информации, пока не будем углубляться в подробности. Будем использовать индекс 0.

Итак, эта функция определяет имя аватара, который коснулся нашего объекта, и возвращает его значение. Чтобы где-то это имя хранить, и потом его использовать, мы создадим переменную с типом string(строка). И назовем ее… ну пусть будет — Avatar_NAME.

default
{

    touch_start(integer total_number)
    {

        string Avatar_NAME;
        llSay(0, "Touched.");
    }
}

Переменную мы создали, теперь можем использовать функцию, она определит имя аватара, который коснулся нашего объекта. И это имя мы можем сразу сохранить в нашей переменной:

default
{

    touch_start(integer total_number)
    {

        string Avatar_NAME;

        Avatar_NAME = llDetectedName();
        llSay(0, "Touched.");
    }
}

Теперь мы уже можем увидеть результат работы нашего скрипта. Он уже определяет имя аватара, который коснулся объекта. Давайте попробуем вывести эти данные в чат, и посмотреть, что получиться:

default
{

    touch_start(integer total_number)
    {

        string Avatar_NAME;

        Avatar_NAME = llDetectedName();
        llSay(0, "Твое имя — " + Avatar_NAME);
    }
}

Давайте подробнее рассмотрим строку llSay(0, "Твое имя — " + Avatar_NAME);

llSay — выводим сообщение

(0, — для этого используем нулевой канал, а это означает, что сообщение пойдет в общий чат

"Твое имя — " + Avatar_NAME— это если вы помните, само сообщение. Тут мы складываем вместе 2 строки, строку «Твое имя — » и строковую переменную (которая само собой разумеется тоже является строкой) Avatar_NAME с помощью операции  +. А в этой переменной уже содержится имя аватара, который дотронулся до вашего объекта.

Если таким образом сложить две или больше разных строк, получиться одна длинная строка, которая будет состоять из всех складываемых вами строк.

Подведем итоги.

Мы создали строковую переменную Avatar_NAME.

Каждый раз при нажатии на объект, функция llDetectedName присваивает этой переменной Avatar_NAME — имя (ник) аватара, который дотрагивается до объекта.

После этого мы выводим в общий чат сообщение, которое содержит в себе данные, хранящиеся в строковой переменной Avatar_NAME.

т.е.

Если кто нибудь щелкнет мышкой по объекту, в общем чате вы увидите сообщение:

«Твое имя — » и ник аватара, который дотронулся до объекта.

Нет комментариев. Ваш будет первым!
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.