суббота, 16 января 2016 г.

[SL] Популярные скрипты. TIP-JAR

TIP-JAR

Не важно, чем бы вы ни занимались глобально, часто возникает необходимость поставить предмет для сбора донаций - тип-джар, а то и не один. Практически всегда существует необходимость оформить его, что называется, "соответствующим образом" и если вы взяли, скажем, покупной тип без прав, то это может стать проблемой.

Но на самом деле тип-джаром может стать совершенно любой объект (конечно же, с правом modify, чтобы его можно было редактировать), если в него положить нужный скрипт. Такой скрипт можно взять из какого-нибудь бесплатного тип-джара, а можно написать самостоятельно.

В этом есть свои плюсы - вы будете точно знать, как это работает, да и всегда можно покрасоваться перед своими друзьями - дескать, сам написал! Круто же, не? ;)

На самом деле любой тип-джар являет собой крайне простой скрипт, основанный на событии money(), которое возникает каждый раз, как кто-то заплатит вашему объекту денег. Сами же деньги при этом попадают прямиком владельцу предмета.

  • Здесь нужно быть внимательным, потому что если у вас владельцем тип-джара окажется группа, все деньги будут уходить в группу!
Но для того, чтобы это событие стало происходить и объект начал принимать деньги, а это свойство, повторюсь, объекту дает только специальная настройка и скрипт, всё это нужно правильно подготовить, то есть инициализировать.



 Создайте объект и назначьте действие по умолчанию при клике на объект - "Платить объекту". В этом случае пользователь будет получать стандартное окошко оплаты с установленными ценами.


Цена устанавливается при помощи функции llSetPayPrice() в самом начале. Синтаксис прост:

llSetPayPrice(цена в окошке, [цена на кнопке, цена на кнопке, PAY_HIDE, PAY_HIDE]);

Собственно всё, уже этого всего вполне достаточно, чтобы объект принимал деньги и передавал их своему владельцу! И весь основной скрипт, реально, несколько строк. Смотрите сами:


Осталось только сделать интерфейс - то есть чтобы люди понимали, что это тип-джар, выводить какую-то информацию и благодарить донатора. Это делается просто такими функциями, как llSay() (сказать в общий чат) и llSetText() (вывести текст над объектом).

Усложняем наш скрипт - здесь я не буду досконально рассматривать каждую команду, если что-то не понятно, спрашивайте. А скрипт будет таким:
Ради прикола я добавил в конце проигрывание двух стандартных звуков - звонка кассы и телепорта. Типа, тю-тю, улетели денежки ;)