часы



Меню сайта
Block title
Форма входа
счелкни если не ле
Поиск
Наш опрос
какая группировка вам нравится
Всего ответов: 861
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Каталог популярных сайтов Нравится Бесплатная раскрутка Баглер - рейтинг русскоязычных сайтов

    Главная » Статьи » Мои статьи

    Создание локаций
    Создание локаций

    Вот туториал.

    Основы

    Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на карте mp_atp. Открываем левел.. первое что надо сделать убрать все rpoint(мультиплеерные точки спавна). Убрали? Отлично. Создаем Spawn elements -> actor ну и по желанию в свойствах (Properties) в custom data прописываем ему предположим вот это:

    [spawn]
    wpn_ak74

    Тем самым при появлении игрока у него в руках уже будет калаш. Далее, создаем монстра... любого по желанию, предположим кровососа и ставим на уровень. Теперь дело за AI map - аи сетка, которая необходима для того, чтобы нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на земле(тем самым мы ее "выбрали" для дальнейших манипуляций), затем AI Map -> Commands -> Make list from selected, жмем add в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем Generate Full. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point (Spawns->ai->graph point), в нем можно ничего не писать. Сохраняем уровень, билдим (build).

    Следующим шагом будет правка конфигов.

    Пример:

    game_maps_single.ltx

    [level_maps_single]
    ...
    testing_ai
    //название вашего уровня

    [testing_ai]
    global_rect = -6,1220.0, 248.0,1481.0
    texture = mapmap_escape
    //текстура при загрузке
    bound_rect = -502.148,-412.284,379.976,474,479
    weathers = default
    //погода

    game_levels.ltx

    [levels]
    ...
    level190
    //номер вашего уровня

    [level190]
    name = testing_ai
    caption = "testing_ai"
    offset = 2000.0, 800.0, 1000.0 // положение нового уровня на глобальной карте, X, Y, Z
    id = 193
    //индентифакционный номер, должен быть уникальным


    game_graphs.ltx

    018 = "testing_ai"

    Теперь открываем AI Compiler, указываем папку с сдк(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень. Проходим 1ую стадию чернового просчета аи карты(шаг 1), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем шаг 2. Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры шаг 4 и наконец фаил .spawn шаг 5. После всех стадий заходим в gamedataspawns и переименовываем test.spawn в all.spawn
    Важные моменты -- Loxotron
    При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; также не пытайтесь запустить уровень через .bat фаил, подобный указанному ниже, тоже будет вылет

    binxr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)

    Правильный .bat фаил

    @start binXR_3DA.exe -start server(%1/single/alife) client(localhost)
    %1 - название левела



    Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.

    Итак у вас два уровня... на одном из них стоит actor. Начнем с него: создаем ai->level changer, затем shape->sphere, с помощью scale увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования spawn element, выделяем level changer и жмем commands->attach object, а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку properties, указываем название, например to_atp_2, теперь нужно прописать в custom data вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:


    [pt_move_if_reject]
    path = atp_1_way_if_reject

    //в случае отказа от перемещения на вторую локу, возвращаемся назад

    В Level to change вписываем наименование уровня, куда мы хотим переместиться с этого левела, например atp_2. В Level Point to change указываем точку, в которой игрок появится... start_actor_01. С level changer на этом уровне всё, пошли далее. Создаем graph point или используем пустой существующий если у вас есть. В него вписываем start_actor_01, этот поинт для того чтобы мы смогли со второго левела atp_2 перейти на atp_1(первый). Создаем еще один graph point c названием exit_atp_1_01, в разделе location выбираем, например "экскейп". В Connection -> Level name указываем уровень, с которым будет связан atp_1, то есть выбираем atp_2, в Connection->Point Name вписываем точку связи из второго уровня, которую мы создадим потом exit_atp_2_01. С первым уровнем всё...

    Для чего нам нужен graph point'ы exit_xxx? exit_xxx представляет собой connection_point(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.

    start_actor_xx - точка появления актера после перехода.

    Помните мы вписали в custom data level changer'а вейпоинт? Вот теперь нам придется его создать. Выбираем Way Points -> жмем "чайник" и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем point mode и ставим второй. Если они не соеденились стрелочкой, жмем create 1-link. Теперь у нас получился путь, который мы прописали в custom data level changer, заходим в свойства и обзываем его также как и в custom data, тоесть atp_1_way_if_reject. Всё с первым уровнем покончили.

    Итак, открываем второй уровень и поехали по новой...

    Создаем там путь из двух вейпоинтов по схеме выше и обзываем atp_2_way_if_reject. Создаем level changer называем его to_atp_1, в custom data пишем

    [pt_move_if_reject]

    path = atp_2_way_if_reject //название вэйпоинта


    В level to change указываем atp_1 //куда переходим с atp_2 В level point to change - start_actor_01(дада, тот который мы создали на первом левеле Запускайте новую игру и наслаждайтесь вашим переходом...
    [править]
    В заключении

    Если вы хотите, чтобы ваша точка перехода отображалась на карте игрока, то лезем в level_tasks.script и добавляем в function add_lchanger_location() секцию, подобную представленной ниже:

    -- test_level_x
    local obj = sim FPRIVATE "TYPE=PICT;ALT=" tory_object(8435)
    if obj then
    level.map_add_object_spot(obj.id, "level_changer", "exit_to_new_location_from_esc")
    end

    В строке (obj.id, "level_changer", "exit_to_new_location_from_esc") выделенный текст - наименование вашего level_changer, а число - его уникальный story_id на уровне, например на эскейпе или вашем левеле, список занятых story_id смотреть в lua_help.script
    Категория: Мои статьи | Добавил: maslovmarkson (12.04.2010)
    Просмотров: 727 | Рейтинг: 0.0/0
    Всего комментариев: 3
    0  
    3 Игорь Го   (24.12.2011 03:58)
    Вы, сударь, просто мудак, или выебываетесь - типа умный, бля?
    Основы!..
    Если в первом классе Вам начнут рассказывать об основах квантовой механики, думаю, тоже посчитаете рассказчика мудаком.

    0  
    2 http://www.stalker-clerski.ucoz.ru/   (08.07.2011 14:41)
    http://www.stalker-clerski.ucoz.ru/publ/pomoshh_po_stalkeru/4

    0  
    1 ааааааааааааа   (08.03.2011 17:13)
    Хуиня статья как и сайт

    Имя *:
    Email:
    Код *:
    design by Vavilon studio
    Создать бесплатный сайт с uCoz© 2024