Среда, 01.04.2020, 05:16
РОССИЯ
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » ↓ Другое ↓ » Маппинг » Создание миссий в одиночной игре
Создание миссий в одиночной игре
Paho  Дата: Суббота, 11.02.2012, 14:59 | Сообщение # 1
Глав.адм
Сообщений: 2417
Репутация: 1515
Награды: 166
Итак, мы знаем как создавать ботов, заставить их двигаться, хотябы на самом примитивном уровне. Но само собой - этого мало. Никто не будет просто играть на карте где нет никаких заданий, а после убийства всех ботов игрок бестолково мечется по карте.

Обычно достаточно создать триггер присвоить им targetname и разместить где либо. По такому же принципу можно прилепить задание к объекту, модели или AI. Рассмотрим это на примере.

В следующем примере .GSC файла, автор дает trigger_multiple значения
"targetname","obj1"
Далее немецкому AI значение
"targetname","obj2"
И trigger_use значение
"targetname","obj3"
***Примечание****
Если вы хотиде добавить FX для взрыва стены (Задание 3), Выполните следующее:

Создайте разрушенную стену

Создайте стену "до разрушения", вуделите ее и превратите в script_brushmodel

Даем ей значения "script_exploder","1"

Даем trigger_use значения "script_exploder","1"

Создаем script_model и прописываем для нее
"model","xmodel/fx"
"script_exploder","1"
"script_fxid","dirt" //Можно изменить fxid на любой, какой пожелаете, только убедитесь что включили его в MAPNAME_FX.GSC

Создайте script_origin,соедините FX со script_origin к которому FX должен быть привязан

Теперь при использовании триггера, стена будет взрываться, проигрываться FX и выполнятся задание.

Теперь переходим к .gsc

Простейший скрипт не слишком сложен.
Разместите .GSC в: "Call of Duty\(main или uo)\maps"

Цитата

main()

{

maps\_load::main();
maps\MAPNAME_FX::main(); //Здесь описаны FX если вы собираетесь использовать их.
obj1();

}

obj1()
{

obj1 = getent("obj1", "targetname"); //Достигнуть entity(trigger_multiple) на карте

objective_add(1, "active", "Get to located position.",getent("obj1", "targetname").origin);

objective_current(1);

iprintlnbold ("Press the |Tab| key to check your Objectives"); //Показывает задание при нажатии клавиши "tab".
obj1 waittill("trigger"); //ждем пока trigger_multiple будет приведен в действие

objective_state(1, "done"); //Задание 1 выполнено

obj1 delete(); //Удаляем trigger brush из игры если он больше не будет использоваться.

wait(2);

thread obj2(); //Переходим к следующему заданию
}

obj2()

{

obj2 = getent("obj2", "targetname"); //Достигнуть entity(Немецкий AI) на карте
objective_add(2, "active", "Kill the German officer.",getent("obj2", "targetname").origin); //Здесь нам надо завалить офицера

objective_current(2);

obj2 waittill("death"); //ждем пока не завалим его

objective_state(2, "done"); //Задание 2 is выполнено

wait(2);

thread obj3(); //Переходим к следующему заданию

}

obj3()
{

obj3 = getent("obj3", "targetname"); //Идем к entity(trigger_use) на карте

objective_add(3, "active", "Blow up the seawall.",getent("obj3", "targetname").origin);

objective_current(3);

obj3 waittill("trigger"); //ждем trigger_use будет запущен

objective_state(3, "done"); //Задание 3 выполено.

wait(2);

iprintlnbold ("All Objective Completed!"); //Сообщаем что больше заданий нет.
}

Для анимации эффектов взрыва стены нужен отдельный скрипт в FX файле (о нем говорилось чуть выше).
*****FX ФАЙЛ ДОЛЖЕН НАЗЫВАТЬСЯ: MAPNAME_FX.GSC*****
Идем в: "Call of Duty\(main или uo)\maps"

main()
{
precacheFX();
}

precacheFX()
{
level._effect["dirt"] = loadfx ("fx/impacts/stukastrafe_dirt.efx");
}

Форум » ↓ Другое ↓ » Маппинг » Создание миссий в одиночной игре
  • Страница 1 из 1
  • 1
Поиск:


 site made by Paho & SplinterCell 2011-2020 | Создать бесплатный сайт с uCoz Сайт оптимизирован под браузеры: Chromium, Google Chrome, Opera
Дизайн данного сайта полностью принадлежит администратору сайта.