Перейти к контенту

[CoP] Перенос и создание карт


Halford

Рекомендуемые сообщения

Всем привет. Подключил все локации из ЧН в ЗП (при помощи ggeditor-а), принялся за восстановление спавна (объекты, аномалии, двери). Собственно, всплыла проблема с дверьми, судя по логу...

FATAL ERROR

[error]Expression    : assertion failed
[error]Function      : doors::door::door
[error]File          : D:\prog_repository\sources\trunk\xrGame\doors_door.cpp
[error]Line          : 36
[error]Description   : m_object.get_door_vectors( m_closed_vector, m_open_vector )


stack trace:

Просит какие-то векторы, видимо не может понять, закрытой спавнить дверь или открытой - не знаю, не разбираюсь в этом. Проверено, в ЧН такого нет, появилось только в ЗП (в xrGame.dll нарыл упоминания об этих строках).

Двери убирать как-то и не хочется вовсе, может кто столкнулся и нашёл выход из сложившейся ситуации? Такой лог выпадает при загрузки свалки и тёмной долины (на кордоне и болотах - всё хорошо, другие локации ещё не трогал, не знаю). Все вышеуказанные локации ЧНовские. Выручайте.

Поделиться этим сообщением


Ссылка на сообщение

Раздвижные значит... Спасибо за наводку. Попробую методом исключения найти проблемную дверь и поиграться с её логикой или настройками в all.spawn. Если получится, отпишусь - тем более, не я один с этим столкнулся.

Пока же, подозрение падает на:

gate_darkvalley_01_l и gate_darkvalley_01_r - в тёмной долине

и

door_garbage_02 - на свалке

Так как они являются раздвижными воротами.

Изменено пользователем SanekKZN

Поделиться этим сообщением


Ссылка на сообщение

Как ни странно, в долине, проблемными оказались ящички tumba_village_50x120_ph_door - на них меньше всего грешил.

Пока что единственное лечение - увы, ампутация.

Подтверждаю, в долине пришлось добавлять val_firebal.anm

Остальные двери на этой локации работают! В том числе, door_wood_130x245_01 (который с логикой val_door_komendant).

Что касаемо red_forest_bridge, а так же, agru_door (из подземки агропрома), я просто добавил недостающие секции из ЧН. Но пока не добрался до туда, чтоб проверить.

Ещё в рыжем лесу, помимо удаления stol_8a_ph_door, необходимо убрать у огнетушителя (name = red_physic_object_0020) строку fixed_bones = bone01,bone02.

red_forest_bridge - работает.

Изменено пользователем SanekKZN

Поделиться этим сообщением


Ссылка на сообщение

Удалось "полностью" восстановить спавн на всех ЧНовских локациях в ЗП. Осталась самая объёмная часть - smart_cover-ы. Но есть одно большое НО. Дело в том, что ACDC CS изначально неправильно распаковывает свои ЧНовские smart_cover-ы. Точнее, их свойства. Так выглядят свойства ЧНовских смарт_каверов:

unk1 = cover_loophole_8_11
unk2 = 0,15,10
unk3 = 1

Так ЗП:

; cse_smart_cover properties
cse_smart_cover__unk1_sz = animpoint_stay_wall
cse_smart_cover__unk2_f32 = 0
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10

; se_smart_cover properties
last_description = animpoint_stay_wall
loopholes = animpoint_stay_wall,1

В связи с этим, вопрос к гуру скриптов, имеется ли возможность поправить ЧНовский ACDC, чтобы тот хотя бы вместо этих unk1 unk2 unk3 отображались правильные строки? Ведь этих смарт каверов не 10 и даже не 100 на каждую локацию, они занимают как минимум половину всего содержимого all.spawn, объём колоссальный для ручной правки.

Насколько я понял:

unk1 - соответствует cse_smart_cover__unk1_sz

unk2 - соответствует cse_smart_cover__unk2_f32, enter_min_enemy_distance и exit_min_enemy_distance

unk3 - соответствует last_description и loopholes

Могу ошибаться.

Думаю, многим это в разы облегчит задачу по адаптации ЧН-овского спавна, если кто-нибудь исправит.

--------

Кстати, ЧНовские укрытия от выбросов отлично работают и на ЗП. так как, это те же space_restrictor-ы. Достаточно лишь добавить новые локации в surge_manager.script, а сами укрытия (их name) в surge_manager.ltx

Изменено пользователем SanekKZN

Поделиться этим сообщением


Ссылка на сообщение

Я не говорю о возврате сюжета, геймплея и т.п. из ЧН. Если честно, я в него даже не играл почти. Так, побегал по болотам. Я говорю о восстановлении спавна - объектов, предметов всяких, костров, ламп, дверей, точек переходов. Ну и smart_cover-ов, чтобы свои не делать. Хоть и слабо представляю, для чего они нужны, но как понял, для отыгрывания различных анимаций, при нахождении в этих каверах.

Поделиться этим сообщением


Ссылка на сообщение

KD87, ну кто ж спорит. Любой текстовый редактор справится с заменой текста на другой. Только мне не только unk1 надо править, но и все остальные. Как, интересно, тот же блокнот, да и любой другой текстовый редактор, вместо unk2 пропишет три строки и сохранит значения (в данном случае - 0, 15, 10)? Никак. Если было бы всё так просто, я бы не писал наверное о просьбе починить acdc, а молча сидел и менял до посинения строки на нужные. То что есть различия и кардинальные изменения между ЧН и ЗП, в этом я и не сомневаюсь.

----

Кстати, задействованы ли в игре camp_zone? А то логика там слишком проста, ни количество неписей не указано, ни вообще ничего. Или она как-то взаимодействует со smart_cover-ами?

Если не трудно, ткните на статейку, которая описывает работу смарт_каверов, для чего конкретно они нужны, если таковая вообще существует.

sovok85, если бы они не были так нужны, врядли бы GSC сидели и парились, добавляя такое их количество в игру, просто бы вырезали. Посмотрев распакованую acdc из ЗП, убедился, что много где они задействованы эти каверы. Так что, не стоИт вопрос об их нужности, вопрос в том, как бы полегче их адаптировать. А то с таким объёмом на одну локацию несколько дней может уйти.

Поделиться этим сообщением


Ссылка на сообщение

Вот правленный acdc.pl для распаковки ЧН: http://webfile.ru/4492426

Большое спасибо KD87 за наводку.

Помимо смарт_каверов, подправил лампы, где вместо положенных:

cse_alife_object_hanging_lamp__unk1_f32 = 1
cse_alife_object_hanging_lamp__unk2_f32 = 1
cse_alife_object_hanging_lamp__unk3_f32 = 1

было:

unk1 = 1
unk2 = 1
unk3 = 1

И физические объекты, где вместо:

upd:ph_force = 0,7,0
upd:ph_torque = 45951472,0,7
upd:ph_position = 0,45951856,0
upd:ph_rotation = 0,7,0,45952624

было:

upd:position = 0,7,0
upd:cse_alife_object_physic__unk1 = 45951472,0,7
upd:cse_alife_object_physic__unk2 = 0,45951856,0
upd:cse_alife_object_physic__unk3 = 0,7,0,45952624

Ну и по мелочи. Единственное, что в любом случае, смарт_каверы необходимо править ручками.

---

Из-за этих строк и могла, кстати, выскочить ошибка при сборке all.spawn.

Поделиться этим сообщением


Ссылка на сообщение

xiani, если не затруднит, можно чуточку подробнее для чайников в Photoshop-е (как я, например) по поводу этого пункта?:

intro_1x просто поверх ложить, а под него intro_1x_softlight

надеюсь я не обижу тебя столь уж детализированной инструкцией:
Нет, конечно. Наоборот, спасибо большое! Я там полный ноль и как раз нуждаюсь в загрузочных экранах. Изменено пользователем SanekKZN

Поделиться этим сообщением


Ссылка на сообщение

Сегодня создал смарт, по аналогии с оригинальными из ЗП, всё куда надо прописал, смарт работает (использовал координаты и пути лагеря новичков из ЧН). Но его заполняют исключительно нпс из респавнера. Если же убрать респавнер, гулаг пустует, хотя спавн сквадов, как надо, прописан в simulation.ltx, в созданном блоке [start_position_escape]

Скажите, в чём может быть проблема? Читал пост nikula, в котором говорится, что они появятся не сразу, а через некоторое время. Не знаю, не проверял. Единственное, что пробовал уйти на другую локацию и вернуться. Но смарт всё так же пустовал. Как-то не очень хочется спавнить всех эксклюзивных болванчиков функцией create_squad, хочется, чтобы всё было "по-честному". Кто-нибудь решил эту проблему? И в чём она заключается?

-------------

Попутно заспавнил sr_crow_spawner и заметил неприятную особенность птиц. Они преследуют ГГ. :D

Изменено пользователем SanekKZN

Поделиться этим сообщением


Ссылка на сообщение

Лока называется escape

Из ЧН.

Смарт прописан в:

game_graphs.ltx

simulation_objects_props.ltx

smart_names.ltx

smart_terrain_masks.ltx

smart_terrain.script

Добавленные локи зарегистрированы везде где надо, в том числе:

sim_board.script

surge_manager.script

Сквады прописаны в:

simulation.ltx

squad_descr_escape.ltx (инклуд на этот файл в squad_descr.ltx)

Конфиги лежат на местах. Смарт работает. Но заполняется исключительно из прописанного в конфиге респавнера.

Поделиться этим сообщением


Ссылка на сообщение

target_smart как раз-таки указан на мой гулаг. Никакие левые неписи не могут попасть, так как гулаг у меня всего один + нет аи-связи с оригинальными локациями ЗП. Не работает у меня edge editor с ЗП-шным section4.bin почему-то - при попытке добавить аи-переход, вылет с руганью на xrGame.dll.

И респавнер внутренний спавнит сквад, у которого тоже прописан target_smart на мой гулаг. Так что, даже не знаю в чём у меня косяк.

И ещё, что означает строка max_population? Количество неписей в смарте или же количество сквадов? И учитываются ли при этом эксклюзивные неписи? А то смотрю, например, логику оригинального ЗП-шного смарта на скадовске - zat_stalker_base_smart.ltx, там max_population = 6, хотя неписей как минимум 15-20 штук. Как это понимать? В общем, пока что одни вопросы...

Изменено пользователем SanekKZN

Поделиться этим сообщением


Ссылка на сообщение

Моя проблема, описанная на предыдущей странице - решена. Оказалось, что в simulation.ltx надо было добавить [start_position_уровень] и для всех остальных подключенных уровней. Всего то и делов. Родилась новая проблема - смарт_каверы-анимпойнты, для сидящих у костра. Существует ли более оптимальный способ или же придётся бегать возле каждого костра, определяя позицию и подгоняя направление взгляда для каждого непися?

Реально ли вообще написать скрипт (не для самой игры, а для снятия координат), который бы сам определял 3-5 точек координат, находящихся в определённом радиусе (1-2 игровых метра) от центра, с направлением взгляда (direction) каждой точки на центр? То есть, встал ГГ в костёр, нажал заветную кнопочку, скрипт выдал несколько точек вокруг него, в радиусе 1-2 метра, с направлением взгляда каждой точки на него. Как-то так. Ведь в ТЧ неписи как-то сами рассаживались вокруг костра, в заданном в логике kamp-а радиусе. И рассаживались вполне равномерно, на равном расстоянии друг от друга - значит подобное возможно, как я понимаю. Например, на базе Position Informer-а.

 

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...