О сайте Druker (only 1 prim). User Ma Инструкция по и Руководство LSL д Руководство LSL д Руководство LSL д Обновлено: 29.06.2007 |
Содержание
Руководство LSL для программистов. Часть III. Сжатие информации.Предисловие
В первой статье цикла мы уже упоминали о том, что на объемы информации в LSL наложены ощутимые ограничения. Это касается как внутренних данных программы, так и внешних данных, хранимых в сети Интернет или в заметках (note). Ведь чтение данных извне ведется через события Точность представления координат
Максимальная точность координаты – 0.001 м. Для большинства приложений достаточно 0.01 м. Для физики – 0.1 м. К чему я это все веду, скажете Вы, зная, что координата задается вещественным числом Теперь обратим внимание на координаты сима (xy): 0..256. Это 2 в степени 8. Практически, байт. Однако, по вертикали – 0..768. Короче, пусть нашим пределом будет 999 в десятеричной системе исчисления. Тогда максимальная координата сима с точностью 0.1 после умножения на 10 будет равна 9999. Мы получили 4 цифры при точности 0.1 м. Замена ихнего вектора на наш
В нотации LSL координата крайней верхней северо-восточной точки сима
Запишем этот вектор в целочисленной нотации: Записывая точки в такой нотации, можно значительно "утрамбовать" информацию. Теперь ее можно хранить в текстовых строках, извлекая по мере необходимости из заметок или с интернет-сайтов. Чтение и запись информации в Интернет
Отправка данных (или запрос) выполняется через вызов
Чтение информации выполняется через событие Как включить русские тексты в вывод скриптаИзвестно, что помещенные в текст скрипта русские константы не отображаются. Это связано с тем, что скрипты LSL используют символы ASCII с кодами до 128. И русские в этот перечень не входят. Обойти это ограничение можно двумя способами. Первый заключается в кодировании и декодировании данных для передачи по Интернет (без передачи). Функция llEscapeURL переводит переданный аргумент в нотацию с использованием ASCII 0..127. например, слово "Пример" в этой нотации будет выглядеть так: "%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80". Можно написать простой скрипт, слушающий фразы из чата и отображающий их в этом формате. Либо использовать обычный браузер с google.com: набранный русский текст после начала поиска можно извлечь из строки адреса http://www.google.c...&qВаша Фраза. Полученные константы помещаются в скрипт, и всякий раз отображаются в чате или в панели диалога (llDialog) через вызов llUnescapeURL. Второй способ заключается в чтении данных из Интернет. Это может быть или текстовый файл с русскими фразами в кодировке Win-1251, или PHP-скрипт, работающий с подобным файлом. В первом случае разбор текстового файла ложится на плечи LSL-скрипта, что удобно для небольших объемов. Во втором – на плечи PHP, который по заданным параметрам "отдает" какую-то определенную часть большого куска текста. Для последнего случая можно для "пробы пера" сделать кубик, травящий анекдоты. |
|