LeeLoo

Скрипт Lumières Dynamiques от Fabien для XP

Оценить эту запись
Скрипт в демке:
http://forum.chaos-project.com/index.php?topic=14062.0

Разбиралась с помощью демки - по локациям.
Некоторые параметры и команды скриптов - не понимаю. Если кто сможет объяснить - буду рада (хотя, не понимаю, зачем оно мне, я же не пользуюсь XP-версией Мейкера). Писала всё "своими словами", потому как наводить текстовую красоту - не сильно принципиально. Главное, понимать что оно такое.

Если присутствует проблема запуска демки, надо в проекте что-нибудь поменять и сохранить (например, стартовую точку)

Спойлер Огромная простыня::

Маски изображений должны лежать в папке \Graphics\Pictures\lumieres

Локация 01
Событие 01. Расчищение затемнения.
Запуск от: Параллельно.
Первая команда ecran_nuit(240,0,0,0) - создаёт затемнение, можно задать цвет по RGB.
(непрозрачность, красный, синий, зелёный)
Данная строка должна присутствовать в событии на каждой карте, где подразумевается затемнение карты.

Вторая команда lumF("lampe2",0,255) - создаёт свет вокруг ивента.
("имя файла изображения", ID ивента, непрозрачность)
"имя файла" - всегда в кавычках
ID ивента - если=0, то это персонаж игрока

Третья команда lumF("lampe2",0,80) - "расчищает" затемнённую территорию перманентно.
При добавлении if $game_player.moving? - "расчищает" территорию исключительно только при движении ивента.
Чтобы команда сработала, данная связка должна быть зациклена и обязательно с паузой:
@>Цикл
@>Пауза: 1 кадров
@>Выполнить скрипт: lumF("lampe2",0,80) if $game_player.moving?
@>
:Повтор

Пауза - плавность "расчищения" (частота обновления команды события).



Локация 02
Событие 01. Защита от освещения.
Запуск от: Параллельно.
Первая команда ecran_nuit(240,0,0,0) - создаёт затемнение, можно задать цвет по RGB.
(непрозрачность, красный, синий, зелёный)
Данная строка должна присутствовать в событии на каждой карте, где подразумевается затемнение карты.

Вторая команда proteger_tiles("arbre_plage",4,5,2) - "защищает" определённые тайлы от освещения.
("имя файла изображения",?,?,2)
Я так и не поняла, каким образом определяется места тайлов (именно! - нескольких), которые должны быть не освещены. Закрадывается подозрение, что это происходит интеллектульно (мейкер ищет объекты, которые вписываются в маску). Я буду в шоке, если оно так. Однако видно, что скрипт не срабатывает на объекте [дереве], которое "не вписалось" в маску (дерево уходит за экран и видна только его нижняя часть).
Не поняла, что означают первые два числа. Самое вероятное - это отступ от края экрана (слева и сверху) с шагом в 1 тайл.
Третье число (2) - вероятно, константа (не изменяемое), потому как при его изменении команда перестаёт работать.
Под каждый объект следует создавать отдельный файл с маской объекта. В демке присутствует только 2 вида деревьев.

Событие 01. Фонарик.
Запуск от: Параллельно.
Позволяет расположить пятно света на расстоянии (можно задать самостоятельно) от ивента:
lum("Lum_hero_gauche",0,255,-110,0) - влево
lum("Lum_hero_droite",0,255,110,0) - вправо
lum("Lum_hero_haut",0,255,0,-110) - вверх
lum("Lum_hero_bas",0,255,0,110) - вниз
("имя файла изображения",ID ивента,непрозрачность,ось х +/-,ось у -/+)
"имя файла" - всегда в кавычках
ID ивента - если=0, то это персонаж игрока

Событие 02. Мигание света (свеча, факел)
Запуск от: Параллельно.
lum("l1",2,255-rand(50))
("имя файла изображения", ID ивента, непрозрачность-частота обновления либо интенсивность непрозрачности)
"имя файла" - всегда в кавычках
ID ивента - если=0, то это персонаж игрока
-rand(50) - чем меньше число, тем менее заметно и реже мигание света



Локация 03
Событие 01. Уличный фонарь и крыша.
ecran_nuit(240,0,0,0) - создаёт затемнение, можно задать цвет по RGB.
(непрозрачность, красный, синий, зелёный)
Данная строка должна присутствовать в событии на каждой карте, где подразумевается затемнение карты.

proteger_tiles("protectarbre",16,9,2) "защищает" определённые тайлы от освещения.
("имя файла изображения",?,?,2)
Я так и не поняла, каким образом определяется места тайлов (именно! - нескольких), которые должны быть не освещены. Закрадывается подозрение, что это происходит интеллектульно (мейкер ищет объекты, которые вписываются в маску). Я буду в шоке, если оно так.
Не поняла, что означают первые два числа. Самое вероятное - это отступ от края экрана (слева и сверху) с шагом в 1 тайл.
Третье число (2) - вероятно, константа (не изменяемое), потому как при его изменении команда перестаёт работать.
Под каждый обект следует создавать отдельный файл с маской объекта. В демке присутствует только 2 вида деревьев.

lum_tile("lampadaire",5,11,1,215,-60,-16) - освещение тайлов.
("имя файла объекта",?,?,1,прозрачность,?,? )
Опять же, если кто расскажет, как оно работает.
Первые два числа - вероятнее всего отступ от края экрана (слева и сверху) с шагом в 1 тайл.
Третье число (1) - вероятно, константа (не изменяемое), потому как при его изменении команда перестаёт работать.
Пятое и шестое числа, веротно, подгонка маски под тайл по осям х/у. ХЗ.

antilum(3,1,10,7) - не позволяет подсвечивать определённую область на карте.
antilum(4,0,9,0)
(отступ от левого края, отступ от верхнего края, 10, ?)
(отступ от левого края, отступ от верхнего края, 9, ?)
Как определяется размер этого квадрата - непонятно. Интеллектуально? Мейкер "видит" гранцы одного тайла?

В данном ивенте повороты фонарика зациклены (в отличие от предыдущей локации). Вероятно, для корректной работы совместно со следующей командой перехода ночь-день.

Событие 02. Переход ночь-день.
Запуск от: Параллельно.
$lum.img.opacity-=1 if $lum.img.opacity>0
$lum.img.opacity-=1 - шаг изменения непрозрачности (плавность перехода)
if $lum.img.opacity>0 - изменяться непрозрачность будет до достижения данного числа.

обратный процесс - ?



Локация 04 Разнообразные освещения.
Событие 01.
ecran_nuit(255,0,0,0) - создаёт затемнение, можно задать цвет по RGB.
(непрозрачность, красный, синий, зелёный)
Данная строка должна присутствовать в событии на каждой карте, где подразумевается затемнение карты.

lum("B",1,255,0,0,6*32,4.5*32)
lum("A",4,0,0,0,12*32,6*32)
lum("C",3,0,0,0,0,4*32)

("имя файла изображения", ID ивента, непрозрачность, расположение, расположение, расположение, расположение)
"имя файла" - всегда в кавычках
Расположение - я не понимаю, как оно высчитывается.

Включение света.
$lum.lums[3].op-=($lum.lums[3].op-240+15*Math.cos(105+Graphics.frame_count/30.0))/5 (идёт в связке с lum("C",3,0,0,0,0,4*32))
$lum.lums[4].op-=($lum.lums[4].op-215+60*Math.cos(Graphics.frame_count/10.0))/5 (идёт в связке с lum("A",4,0,0,0,12*32,6*32))
В квадратных скобках - ID ивента
Вот эти две команды для меня - вообще китайская грамота. Могу только определить ID ивентов.
Зачем нужно было привязывать первый из них к последней двери камеры (когда включается светильник у входа) - мне не понятно.




Локация 05. Скрытая территория.
@memomap=$game_map.bitmap - запоминает карту, на котором находится ивент с этой командой.
Перемещение персонажа (предпочтительно через переменные) на новую карту.
ecran_decor(@memomap) - восстанавливает предыщую "запомненную" карту как "поверхностную" картинку.
decor("lampe",0,0) - форма области рассеивания "иллюзии".
("имя файла изображения",?,?)

$lum.lums[0].zx=$lum.lums[0].zy=0.8 - китайская грамота.



Локация 06. Скрытая территория.
$lum2.lums[0].op+=10
$lum.lums[0].op+=10 if $lum2.lums[0].op>200 - опять китайская грамота.
Понятно только, что в квадратных скобках - ID ивента


Маленький словарик:
Lum - от lumiere - свет
Nuit - ночь
Рroteger - защита
Arbre - дерево
Gauche - лево
Droite - право
Haut - высокий (над)
Bas - низкий (под)

Отправить "Скрипт Lumières Dynamiques от Fabien для XP" в Digg Отправить "Скрипт Lumières Dynamiques от Fabien для XP" в del.icio.us Отправить "Скрипт Lumières Dynamiques от Fabien для XP" в StumbleUpon Отправить "Скрипт Lumières Dynamiques от Fabien для XP" в Google Отправить "Скрипт Lumières Dynamiques от Fabien для XP" в VKontakte Отправить "Скрипт Lumières Dynamiques от Fabien для XP" в Facebook

Обновлено 13.05.2014 в 02:16 LeeLoo

Метки: скрипты Добавить / редактировать метки
Категории
Скрипты

Комментарии