Как мы знаем, с выходом патча 1.18, в креаторе появилась возможность относительно свободно перемещаться между уровнями своей игры. Остались нерешенными только две проблемы: - игрок всегда появляется в одной точке старта; - изменения, произошедшие с прошлых посещений уровня, не сохраняются, и мы, фактически, перепроходим его заново. Вот, первую проблему удалось решить относительно удобоваримым способом (надеюсь, что в будущем получится его усовершенствовать) и я сразу же поспешил поделиться своим открытием со всей прогрессивной общественностью (пока, увы, только русскоговорящей). А как это сделать написано под катом)))
Значит так. Принцип работы скрипта основывается на переменной, значение которой изменяется каждый раз, когда игрок покидает уровень. При загрузке нового уровня, он появляется на обычной точке старта (лучше всего - одноклеточная комната без освещения), на которой также стоит триггер телепорта, проверяющий значение переменной и перемещающий игрока в точку, соответствующую тому или иному значению. Не самый удобный и красивый вариант, зато стопроцентно работающий на чистом креаторе 1.18)))
Как делать (повторяем для каждого уровня): 1. Ставим "где-нибудь" стартовую точку игрока. 2. Поверх стартовой точки ставим триггер-зону со скриптом из папки "startpoints" 3. На уровне расставляем триггер-зоны, которые будут "точками входа" и называем их TeleporterX (где Х - номер телепортера); 4. На уровне расставляем триггер-зоны, которые будут "точками выхода", ставим им скрипты из папки "levels" (например, для точки выхода с первого уровня на второй - скрипт "lvl01to02" и т.д.) и (ОБЯЗАТЕЛЬНО!!!) ставим значение IsObjective=2 у каждой зоны; 5. Собираем игру, бегаем между картами и радуемся жизни)))
Редактируемые параметры: PrevLvl - та самая переменная, которая всем и рулит. В ней указываем номер уровня, КОТОРЫЙ ПОКИДАЕМ. Номер - тот, под которым ваш уровень стоит в списке компилляции игры. nextlevel - переменная, указывающая уровень, НА КОТОРЫЙ МЫ ПЕРЕХОДИМ. Номер - по тому же принципу, что и прошлый. plrmoveto - номер телепорта, к которому мы перенесемся с точки старта.
Не забываем, что в паке даны скрипты для трех карт, с каждой из которых можно попасть на две другие. Если у вас другое количество и другая взаимосвязь уровней, то необходимо будет сделать соответствующие изменения в скриптах)
Добавлено (10.08.2011, 08:34) --------------------------------------------- еще немного повтыкал глобалки, таки да, можно с их помощью и изменения на уровнях фиксировать))) в нужные места скриптов вписываешь и все. кстати, какое максимальное количество глобальных переменный в 1.18, кто знает?
изменения, произошедшие с прошлых посещений уровня, не сохраняются, и мы, фактически, перепроходим его заново.
изменение в инвентаре можно сохранять с помощью переменных. к каждому предмету дать глобальную переменную, выражающую количество предмета. при переходе на другой уровень, переменные проверяются, и предметы остаются Technology for Home Robotics
изменение в инвентаре можно сохранять с помощью переменных. к каждому предмету дать глобальную переменную, выражающую количество предмета. при переходе на другой уровень, переменные проверяются, и предметы остаются
ога-ога, уже сделал это все))
Добавлено (14.08.2011, 10:11) --------------------------------------------- собсно, аптечка моя, которая в соседних темах где-то, по этому же принципу работает.
Добавлено (16 Июл 2013, 22:22) --------------------------------------------- Есть идея как сделать двустороннее прохождение одного уровня.
Уровень 1. Из точки А в точку Б. Уровень 1. Из точки Б в точку А.
Только получатся линейные уровни, как в L4D бежишь, из одного пункта в другой, убивая на своем пути зомби. Можно сделать тоже самое. Например из А в Б: респим врагов через триггеры на пути в точку Б и выключаем триггер с обратной стороны (когда двигаемся из точки Б в точку А. Вот такая задумка получилась.
Сообщение отредактировал Scripter - Вт, 16 Июл 2013, 22:24