IGROMANIA.RU
Registration
MoreLess
Популярные за неделю
Популярные за месяц
«Труп выглядит здоровее». Четвертый сезон «Шерлока» Кино > «Труп выглядит здоровее». Четвертый сезон «Шерлока»
Сценаристы «Шерлока» обещали, что четвертый сезон станет пугающим и шокирующим. Разбираемся, все ли у них получилось.
Комментариев: 31
Выбор имеет значение. Превью Vampyr В разработке > Выбор имеет значение. Превью Vampyr
Смогут ли авторы Remember Me и Life is Strange создать полноценную ролевку с открытым миром? Делайте ваши ставки, господа!
Комментариев: 18
«Press X to Win», или История Quick Time Event Спец > «Press X to Win», или История Quick Time Event
История возникновения и развития ваших нелюбимых всплывающих кнопочек.
Комментариев: 16
Семь кругов Камуро-тё. Обзор Yakuza 0 Рецензии > Семь кругов Камуро-тё. Обзор Yakuza 0
Для поклонников серии Yakuza 0 станет еще одной отличной игрой, а для новичков — билетом в мир японской мафии.
Комментариев: 11
Battlefield 1. Фронтовые записки Спец > Battlefield 1. Фронтовые записки
Делимся опытом выживания в сетевом режиме главного боевика про первую мировую.
Комментариев: 9
Прямо в лицо! Первые впечатления от Sniper Elite 4 В разработке > Прямо в лицо! Первые впечатления от Sniper Elite 4
Карл Фэйрберн вспомнил, что он снайпер.
Комментариев: 7
Информация по игре
Блицкриг
Название: Блицкриг   PC
Другое название: Blitzkrieg
Серия: Блицкриг
Мультиплеер: Интернет, локальная сеть (до 16 игроков)
Разработчик: Nival Interactive
Издатель: cdv Software Entertainment
Издатель в России: СофтКлаб
Дата выхода: 28 март 2003
Сайты игры:
http://games.1c.ru/blitzkrieg
Рейтинги игры
0
Рейтинг
журнала
0
Рейтинг
сайта
Рейтинг
игроков
Rating
0,00,51,01,52,02,53,03,54,04,55,05,56,06,57,07,58,08,59,09,5
МОЙ рейтинг
Еще материалы по
Блицкриг
Всего: 9
Статьи о Блицкриг
Продолжаем вспоминать лучшее, что подарила игрокам отечественная индустрия видеоигр.More
Blitzkrieg * Empires: Dawn of the Modern World * Haegemonia * Jedi Knight: Jedi Academy * Massive Assault * UFO: AftermathMore
"...По сути, это даже не редактор, а настоящий developer kit, эдакая сборная солянка из 20 (!) различных редакторов. С их помощью можно сделать что угодно: от маленького мода до совершенно новой игры....More
В прошлой статье мы нарисовали ландшафт карты и расставили юниты. Но все объекты на уровне застыли без движения. Пора вдохнуть жизнь в это сонное царство..."More
"В глобальную тактическую стратегию "Блицкриг" встроена возможность игры по локальной сети и через интернет. Но чтобы играть по удаленному доступу, нужно правильно настроить игру. О том, как это сдела...More
Всего: 3
Новости о Блицкриг
   Редактор: blitzkrieg Map Editor
   Где взять: Устанавливается вместе с игрой
   Возможности: 100% игровых
   Сложность освоения: Выше средней
   Документация: Устанавливается вместе с игрой
   В прошлой статье мы нарисовали ландшафт карты и расставили юниты. Но все объекты на уровне застыли без движения. Пора вдохнуть жизнь в это сонное царство. В чем нам помогут скрипты. Сегодня мы разберем логику написания скриптов для "Блицкрига" и подкрепим теорию практикой — рассмотрим на конкретных примерах основные группы скриптов.

   Теория

   Для написания скриптов в "Блицкриге" используется популярный у разработчиков компьютерных игр язык Lua. Более подробную информацию о нем вы можете найти на сайте www.lua.org. Язык довольно сложный, но с очень широкими возможностями. С помощью Lua можно писать нестандартные скрипты, не пользуясь шаблонами, которые написали разработчики игры.
   Именно Lua использовали авторы Neverwinter Nights, чтобы оживить мир игры. Статья, посвященная написанию скриптов в Neverwinter Nights, была опубликована в январском номере "Игромании" за этот год. Если хотите более детально изучить язык, обратитесь к этому материалу.
   Мы же рассмотрим, как работать с Lua в "Блицкриге". Как ни странно, основные сложности возникают не при написании скрипта, а при его активации в игре. К сожалению, в игровом редакторе нет встроенного редактора скриптов. Поэтому придется писать их при помощи сторонних инструментов.
   Откройте файл data.pak, находящийся в папке blitzkrieg\Data, с помощью WinRAR (должен быть установлен WinRAR версии 3.0 или выше). Из папки Scenarios\Script извлеките любой файл с расширением *.lua.
182 Kb
-Скрипт, открытый в "Блокноте"
Откройте файл с помощью Notepad и сотрите все написанное. Теперь можно писать свой скрипт. Если скрипт написан, нужно активировать его в редакторе. Для этого зайдите в меню Map\Script и в появившемся окне укажите месторасположение скрипта. 
  
  Теперь что касается непосредственно написания скрипта. Несмотря на кажущуюся сложность, структура "тела" любого скрипта стандартна. В основе его работы лежит принцип проверки условий. Скрипт состоит из набора самых разнообразных функций, которые отвечают за действия различных игровых объектов. Например, функции могут определять перемещение юнитов в указанную зону, проверять количество юнитов в отряде или изменять погодные условия. Все скрипты для конкретного уровня, даже если они никак не связаны друг с другом, нужно писать в одном файле — это связано с особенностями Lua. Правда, иногда это приводит к путанице. Все функции и их назначение перечислены в мануале в разделе "Язык сценариев".

   Создание групп

   Через скрипты нельзя обращаться к отдельным юнитам — только к группам, заданным в редакторе. Если вы хотите определить действия одного конкретного юнита, вам просто нужно сделать группу, в которую будет входить один юнит.
   Чтобы сформировать группу, в редакторе зайдите на панель Reinforcement Groups. Нажмите на кнопку New Group и в появившемся поле впишите идентификационный номер группы (как устанавливать идентификационные номера юнитам, мы разобрали в первой части статьи). Этот номер будет использоваться в скриптах. Чтобы добавить к группе юнит или несколько юнитов, нажмите на кнопку Add Group With scripted и впишите в появившемся поле идентификационный номер юнита. Одной группе можно дать одновременно несколько номеров.
   Иногда в скриптах приходится обращаться к той или иной области карты. Но в скрипте нельзя просто написать, что, например, группа 144 должна атаковать базу. Базу тоже надо как-то определить. Для этого существуют сценарные области — это просто локации на карте, которым в редакторе присвоены номера или имена. Чтобы создать сценарную область, зайдите на панель Map Tools и щелкните по Script Area Tool. Выберите форму сценарной области — Rectangle (Прямоугольник) или Circle (Круг) — и, удерживая левую кнопку мыши, растяните область до нужного размера. Теперь задайте имя области (можно просто вписать номер) в окошке рядом и нажимайте кнопку Ok.
257 Kb
- Обязательно пользуйтесь мануалом. В нем находятся описания всех функций
Имя должно появиться в списке на панели Map Tools.
   
   Практикум

   Научиться программировать на Lua на основе только одной статьи нельзя. Понадобилось бы не менее десяти материалов по 5-6 страниц каждый. Но для того, чтобы "оживить" любой уровень "Блицкрига", вам и не нужно уметь программировать на Lua. Достаточно иметь перед глазами примеры основных групп скриптов и уметь изменять их в зависимости от ситуации.
   Рассмотрим основные виды скриптов на примере одного большого скрипта (он включает несколько мелких скриптов) из миссии, которую разработчики почему-то исключили из игры. Скрипты данной миссии сохранились в ini-файлах "Блицкрига". Скрипт описывает защиту областей Podol и Plazdarm. Цель — уничтожить все юниты с идентификационным номером 21, 201, 210.
   local num = GetNUnitsInScriptGroup(21) + GetNUnitsInScriptGroup(201) + GetNUnitsInScriptGroup(210);
   if ( num <= 0) then
   RunScript( "Victory", 4000);
   Suicide();
   end;
   end;

   В этой части скрипта задаются условия победы. Сначала определяется локальная переменная num, через которую в дальнейшем скрипт обращается к группе юнитов, имеющих идентификационные номера 21, 201, 210. Затем задаются условия проверки. Если локальная переменная num станет меньше или равна нулю (это произойдет, когда в отрядах противника не останется ни одного юнита), выполняется скрипт Victory (Победа). Этот скрипт будет выполняться каждые 4 секунды. Когда условие выполнится, скрипт отключится функцией Suicide.
   function TobeDefeated()
   if (( GetNUnitsInArea(1, "Plazdarm") > 1) or ( GetNUnitsInArea(1, "Podol") > 1)) then
   Loose();
   Suicide();
   end;
   end;

   Данный участок скрипта задает условия поражения. Если вражеские юниты находятся на сценарной области с названиями (про сценарные области смотрите на врезке) Plazdarm или Podol, игроку засчитается поражение.
   function Victory()
   Win(0);
   Suicide();
   end;

   Данный участок скрипта запустится после выполнения первого условия, описанного выше.
534 Kb
- Чтобы загрузить скрипт в редактор, достаточно просто прописать название скрипта в поле Set Script File
Точно указывается, какая сторона победит. В скобках оператора Win стоит значение ноль, которое определяет, кому будет засчитана победа. Нулем в игре обозначается сторона, за которую играете вы.
   function Attack0()

   Cmd(3, 20, GetScriptAreaParams( "Podol" ) );
   Suicide();
   end;
   function Attack1()
   Cmd(3, 21, GetScriptAreaParams( "Podol" ) );
   Suicide();
   end;
   function Attack2()
   Cmd(3, 201, GetScriptAreaParams( "Plazdarm" ) );
   Suicide();
   end;

   Скрипт атаки. Все внимание на то, что прописано в скобках рядом с операторами. Цифра "3" рядом с оператором Cmd обозначает, какую команду должен выполнить юнит. Полный список команд вы найдете в мануале, устанавливаемом вместе с игрой. В данном случае команда — штурм (Attack) указанной точки. Далее в скрипте указано, какая группа какую локацию отправится штурмовать.
   function Attack3()
   if ( (GetNUnitsInArea(1, "Okuninovsky most") > 0) or ( GetNUnitsInScriptGroup(201) <= 2) ) then
   Cmd(3, 210, GetScriptAreaParams( "Plazdarm" ) );
   Suicide();
   end;
   end;

   Еще один скрипт атаки, чуть более сложный. Проверка месторасположения и количества юнитов в разных группах. Обратите внимание на строку GetNUnitsInScriptGroup(201) <= 2. Когда количество юнитов в группе со сценарным номером 201 будет меньше или равно двум, атаку начнет группа со сценарным номером 210.
 
   function Init()
   RunScript( "ToWin", 3000);
   RunScript( "TobeDefeated", 3000);
   RunScript( "Attack0", 1000);
   RunScript( "Attack1", 300000);
   RunScript( "Attack2", 10000);
   RunScript( "Attack3", 5000);
   end;

   Последний скрипт, запускающий предыдущие скрипты с указанной периодичностью. Обратите внимание на функцию Init(). При запуске карты сразу запускается эта функция, и уже через нее вызываются все проверочные функции и установки.
   * * *
   На основе рассмотренного нами скрипта вы можете создавать скрипты движения и атаки практически любой сложности для собственных уровней. Достаточно просто скопировать текст скрипта-исходника и изменить в нем некоторые параметры, чтобы получился совершенно новый скрипт.
   P.S. Выражаем благодарность всем сотрудникам Nival Interactive и особенно Александру Винникову за помощь, оказанную в написание статьи.
Чем опечалил нас и всю игровую индустрию в целом миновавший год? Вспоминаем!
Чествуем победителей во всех основных номинациях. Какие игры, по мнению «Игромании», нельзя было обойти вниманием в 2016 году?
Мы сыграли в несколько игр на новой консоли Nintendo и спешим поделиться впечатлениями!
Рассказываем о персонажах, присутствие которых делает наши любимые игры еще лучше.
Комментарии к статьям
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Главные новости
Самые комментируемые статьи за месяц:
Кино > «Викинг». The Return of the (Vi)king
Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Спец > Презентация Nintendo Switch. Самое главное об играх для новой консоли
Кино > «Труп выглядит здоровее». Четвертый сезон «Шерлока»
Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Спец > На скорости 160 км/ч, или Как работают гоночные игры
В разработке > Выбор имеет значение. Превью Vampyr
Спец > «Press X to Win», или История Quick Time Event
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования