Профиль |
Суббота 20.04.2024
|
|
Меню сайта |
|
|
Категории раздела |
|
|
Поиск |
|
|
Наш опрос |
|
|
Мини-чат |
|
|
... |
|
|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0
|
|
|
Статьи |
Отображение меток
Что потребуется: программа для снятия координат (Position Informer или любая другая), распаковщик-запаковщик all.spawn – ACDC конвертер от bardak’а, несколько файлов из ЗП. Для начала снимаем координаты того места, где нужно поставить метку. Желательно снимать метку, находясь в центре нужного объекта. Записываем координаты x,y,z, level- и game-vertex'ы. Распаковываем all.spawn необходимой версией распаковщика. Открываем блокнотом алайф.лтх нужной нам локации и в конце файла создаём секцию вида: [номер, следующий за номером предыдущей секции] ; cse_abstract properties section_name = space_restrictor name = st_pri_b302 position = 135.845,16.680,219.551;подставляем нужные координаты direction = 0,0,0
; cse_alife_object properties game_vertex_id = 3764;пишем нужный гейм-вертекс distance = 0 level_vertex_id = 340694;пишем нужный левел-вертекс object_flags = 0xffffff3e story_id = 16000;присваиваем стори_айди
; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1
; cse_alife_space_restrictor properties restrictor_type = 3 Стори_айди не должны повторяться, для этого открываем блокнотом файл game_story_ids.ltx – смотрим, каких цифр нет, и дописываем в конец файла все вновь присвоенные стори_айди по типу уже существующих. Очень большие числа не брать, достаточно предела 10000-15000, допустим, хватит для чего угодно. В итоге в конце файла дописываем строки вида: 16000 = "st_pri_b306_name" , где число – это айди, в кавычках имя, в принципе можно ставить любое, названия меток у нас будут прямо в скрипте. Далее открываем блокнотом файл level.tasks.script (gamedata/scripts…) Видим там функцию function add_lchanger_location() – local sim = alife() if sim then -- escape local obj = sim:story_object(91) if obj then level.map_add_object_spot(obj.id, "level_changer", "to_garbage") end… -- и.т.д… -- Для каждой нужной нам метки создаём секцию вида: local obj = sim:story_object(91) –- номер стори_айди метки if obj then level.map_add_object_spot(obj.id, "тип метки", "название метки, например Мост им. Преображенского") end… Далее, по типам меток. В принципе, можно использовать стандартные ТЧ-метки. Например: crlc_big – большой белый круг; crlc_mdl – средних размеров круг; crlc_small – маленький кружок. Но можно сделать метки объектов из ЗП. Для этого открываем блокнотом файлик map_spots.xml (config/ui) и дописываем перед финальным </map_spots> секцию вида: <primary_object> <level_map spot="primary_object_spot" pointer="quest_pointer"/> </primary_object> <primary_object_spot x="0" y="0" width="15" height="15" alignment="c" scale="1" scale_min="1" scale_max="6" stretch="1"> <texture x="0" y="585" width="205" height="205">ui\ui_actor_sleep_screen</texture> </primary_object_spot> Теперь можно тип метки указывать ”primary_object”. Закидываем по адресу textures/ui файлик ui_actor_sleep_screen.dds из ЗП, заходим в игру, начинаем НИ и любуемся метками… Метки через данный способ будут отображаться постоянно. Описал вроде всё, текстурку ui_actor_sleep_screen.dds берём тут:
Источник: http://www.amk-team.ru/forum/index.php?showtopic=6458&st=40 |
Категория: Статьи | Добавил: babak (24.10.2012)
|
Просмотров: 727
| Рейтинг: 0.0/0 |
|
|
|