Итак, урок №1 от Никиты дал вам базовые знания о языке сценариев. В моем уроке, неофициальном продолжении, Вы:
Научитесь создавать "закольцованные" скрипты
Узнаете новые команды
Потренеруитесь в написании скриптов Итак, преступим. Стадия №1. Делаем уровень.
Создадим стандартную комнату размером 5х5 клеток. Поместим в один из углов маркер Player Start. Установим в его свойствах следующие значения:
Теперь добавим парочку столов и поместим на них два объекта: аптечку (small_health_2) и испорченный банан (small_health_1). В итоге у нас должно получиться примерно следующее:
На этом стадия №1 закончена. Стадия №2. Пишем скрипты. Создадим новый файл health.fpi, поместим в папку Files/scriptbank/user. В самом же файле напишем след. скрипт:
Разместим триггер зону в любом месте уровня. Укажем в свойствах зоны в поле Main путь к нашему скрипту. Теперь создадим новый файл medkit.fpi и напишем в нем следующее:
Первое на что надо обратить внимание - в конце скрипта стоит условие state=0. Это значит, что скрипт "закольцованный", т.е. он не единичный, а повторяющийся постоянно. Разберемся, что делает наш скрипт. Первая строка: условие у нас всего одно - state=0, т.е. действие этой строки выполняется всегда, т.к. условие state=0 всегда истинно. Действие первой строки: команда timerstart - запускает таймер. Если же до этого в другом скрипте у вас уже был таймер, то он перезапуститься и начнуться глюки. Во второй строке есть новое условие - timergreater - если прошло х времени от запуска таймера. Само время указывать в миллисекундах. По условию нашего скрипта, когда проходит одна секунда после запуска таймера, то игроку добавляется - 1 ед. здоровья. За добавление здоровья игроку отвечает команда plraddhealth. В конце второй строки, скрипт снова возвращается к началу (state=0). Таймер снова перезапускается и через секунду снова вычитает 1 ед здоровья. А теперь - внимание- задание:
Написать скрипт, по которому у игрока будет вычитаться по 2 ед. каждые 4 сек.
Здесь у нас много новых, незнакомых команд. Сначала, условия: plrdistwithin - условие истинно, если расстояние до объекта от игрока меньше или равно Х. Как высчитать Х? Я предпочитаю такой способ - прямо на объект ставим лампу и изменяем ее радиус до нужного вам. Записываем полученную цифру, лампу удаляем. Следующее условие - plrusingaction=x. Истинно, если игрок нажал кнопку USE (x=1). Далее идут команды действия: ambience(red,green,blue)=x. Устанавливает окружающее освещение (цвет вычисляется в системе RGB). Посмотреть значения можно в любом граф. редакторе. Новая команда - действие destroy - уничтожает объект. Что делает скрипт? Когда расстояние до объекта (в данном случае - аптечке) меньше или равно 50 и игрок нажал кнопку USE - окружающее освещение становиться зеленым и игроку прибавляется 100 ед здоровья. Попробуйте разобраться с третьим скриптом - уверен, это будет не очень сложно. Стадия №4. Проверяем уровень. Итак вот,что происходит, когда мы принимает аптечку:
А вот, когда кушаем испорченный банан:
На этом, мой урок закончен. Оставляем свои комментарии и вопросы. Если вам понравился урок - поставьте "плюс", сделайте автору приятно !
Спасибо! Приобрёл с помощью данного урока базовые знания (как новичёк) о скриптинге. Планируете ли вы сделать следующий, более расширенный урок с применением иных функций?
Сообщение: 436
Настроение: Отпуск=)
Зарегистрирован: 08.06.09
Откуда: Самая лучшая страна в мире!, Киров, Кировская обл.
Репутация:
6
Отправлено: 22.07.09 23:09. Заголовок: Это уже будет в трет..
Это уже будет в третьем уроке, так как с худами у меня нет возможности по-нормальному разобраться (нет конструктора). Сегодня ночью буду думать над вторым уроком...
Все даты в формате GMT
5 час. Хитов сегодня: 2
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет