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

[SoC] Ковыряемся в файлах

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

Может кто разбирал файлы anm и xrdemo? Мне нужны описания организации данных в этих форматах файлов. Пример для Level.cform тут.

Ссылка на комментарий

Я немного повозился в ХИКС редакторе с форматом xrdemo и смог определить некоторые моменты его организации. Ниже представлена таблица:

Скрытый текст

Собственно это 1 блок, таких блоков в файле может быть сколько угодно.

32 bit

float

32 bit

float

32 bit

float

32 bit

float

?

?

Dir.x

00 00 00 00

?

?

Dir.y

00 00 00 00

?

?

Dir.z

00 00 00 00

Pos.x

Pos.y

Pos.z

00 00 80 3F

Понятно, что такие блоки создаются когда Вы нажимаете пробел при записи демки. Dir._ - это поворот камеры, а Pos._ - это позиция камеры, префиксы x, y, z - проекции векторов. Что находится в местах отмеченных "?" - я так и не понял, может это скорость движения камеры или допуски отклонения, но прослеживается зависимость величин от соседней проекции вектора. И еще, почему то значения проекций векторов позиции камеры иногда существенно разнятся со снятыми с игры, а величины векторов поворота предельно точны... Значения со смещением 96 бит (крайний правый столбец) - видимо просто разделители...

У кого будет желание разберите формат поподробнее... Тут я выложу архив, в архиве файл 62.xrdemo записанный в ТЧ на Кордоне (ГГ на позиции 0. 0. 0. (на дороге к Ж\Д мосту на уровне АТП)), в демке 2 поинта, также в архиве 2 куска скриншота с позициями камеры когда я ставил поинты! Внимание! На скриншотах ориентируемся на значения: campos и camdir!

Изменено пользователем Graff46
Дополнил
Ссылка на комментарий

А кто точно знает, что такое offline_interactive_radius у аномалий ?

Ссылка на комментарий
1 час назад, Dennis_Chikin сказал:

А кто точно знает

Наверно движок:cool: ?

Прошелся поиском по исходникам - кроме вычитывания этого параметра и сейв\лоада в нет-пакет нашел единственное место где этот параметр используется:

Скрытый текст

void CSE_ALifeAnomalousZone::spawn_artefacts ()

{

VERIFY2 (!m_bOnline,"Cannot spawn artefacts in online!");

float m_min_start_power = pSettings->r_float(name(),"min_start_power");

float m_max_start_power = pSettings->r_float(name(),"max_start_power");

u32 m_min_artefact_count= pSettings->r_u32 (name(),"min_artefact_count");;

u32 m_max_artefact_count= pSettings->r_u32 (name(),"max_artefact_count");;

u32 m_artefact_count;

if (m_min_artefact_count == m_max_artefact_count)

m_artefact_count = m_min_artefact_count;

else

m_artefact_count = randI(m_min_artefact_count,m_max_artefact_count);

if (m_min_start_power == m_max_start_power)

m_maxPower = m_min_start_power;

else

m_maxPower = randF(m_min_start_power,m_max_start_power);

LPCSTR artefacts = pSettings->r_string(name(),"artefacts");

u32 n = _GetItemCount(artefacts);

VERIFY2 (!(n % 2),"Invalid parameters count in line artefacts for anomalous zone");

n >>= 1;

 

typedef std::pair<shared_str,float> ARTEFACT_PAIR;

string256 temp0, temp1;

ARTEFACT_PAIR *m_weights = (ARTEFACT_PAIR*)_alloca(n*sizeof(ARTEFACT_PAIR));

ARTEFACT_PAIR *I = m_weights;

ARTEFACT_PAIR *E = m_weights + n;

for (u32 i = 0; I != E; ++I, ++i) {

_GetItem (artefacts,2*i,temp0);

_GetItem (artefacts,2*i + 1,temp1);

new (I) ARTEFACT_PAIR(temp0,(float)atof(temp1));

}

for (u32 ii=0; ii<m_artefact_count; ++ii) {

float fProbability = randF(1.f);

float fSum = 0.f;

for (u16 p=0; p<n; ++p) {

fSum += m_weights[p].second;

if (fSum > fProbability)

break;

}

if (p < n) {

CSE_Abstract *l_tpSE_Abstract = alife().spawn_item(*m_weights[p].first,position(),m_tNodeID,m_tGraphID,0xffff);

R_ASSERT3 (l_tpSE_Abstract,"Can't spawn artefact ",*m_weights[p].first);

CSE_ALifeDynamicObject *i = smart_cast<CSE_ALifeDynamicObject*>(l_tpSE_Abstract);

R_ASSERT2 (i,"Non-ALife object in the 'game.spawn'");

i->m_tSpawnID = m_tSpawnID;

i->m_bALifeControl = true;

ai().alife().spawns().assign_artefact_position(this,i);

Fvector t = i->o_Position ;

u32 p = i->m_tNodeID ;

float q = i->m_fDistance ;

alife().graph().change(i,m_tGraphID,i->m_tGraphID);

i->o_Position = t;

i->m_tNodeID = p;

i->m_fDistance = q;

CSE_ALifeItemArtefact *l_tpALifeItemArtefact = smart_cast<CSE_ALifeItemArtefact*>(i);

R_ASSERT2 (l_tpALifeItemArtefact,"Anomalous zone can't generate non-artefact objects since they don't have an 'anomaly property'!");

l_tpALifeItemArtefact->m_fAnomalyValue = m_maxPower*(1.f - i->o_Position.distance_to(o_Position)/m_offline_interactive_radius);

}

}

 

Ссылка на комментарий

"Бессмысленный и беспощадный" (c), угум. Даже авторы не знают.

И, как я понимаю, к попыткам сбросить монстрам рестрикторы, про которые они понятия не имеют, явно не относится.ни каким образом.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

Всем привет. нужна помощь

Скрытый текст

Есть диалог, в игре вылет 140 строка, хотя есть свободный диалог. Кто может разобраться, помогите. https://yadi.sk/i/woA4iLU43QgT2C

 

Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч.

Ссылка на комментарий

Кто сказал, что фразы 0, 01, 02, 1, 2 будут пониматься как разные и существующие ?

По поводу 140й строки - это к Кашпировскому. Он и зарядит.

Ссылка на комментарий

Как раз фразы 0, 01, 02 читаются, а после вылет

Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч.

Ссылка на комментарий
2 часа назад, nego сказал:

Как раз фразы 0, 01, 02 читаются, а после вылет

Ну так попробуй заменить другими номерами - вообще-то незначащие ноли не стоит использовать...

Ссылка на комментарий

Скажите пожалуйста, диалог написан правильно? Есть ошибки?

Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч.

Ссылка на комментарий

@nego Мне кажется в диалоге ошибка.

Во фразе "02" происходит выбор из нескольких фраз, например фразы "1". Далее следует фраза "7", у которой есть <precondition> и <dont_has_info> и если они не выполняются, следует вылет, т.к. нет следующей фразы.

И ещё. Фразы "02" и "14" которые, по-видимому, одинаковые принадлежат разным персонажам.

S.T.A.L.K.E.R. CoP Objects (upd 10.04.24)

Ссылка на комментарий

Прекондишины на деньги есть. Если денег нехватает, то фраза не доступна. фраза 13 всегда доступна в диалоге. После фразы "02" по логике есть выбор фраз, а по вылету (140) нет доступной фразы.

Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч.

Ссылка на комментарий

@nego , если ещё актуально :biggrin: . Диалог actor-ский? Вот здесь

Скрытый текст

            <phrase id="14">
                <text>vizit_info_bar_14</text>
                <next>1</next>
                <next>2</next>
                <next>3</next>
                <next>4</next>
                <next>5</next>
                <next>6</next>
            </phrase>

Отправляешь не туда. Две фразы подряд 1-ого speaker-а.

Ссылка на комментарий

Всем спасибо. Обсуждение данного диалога считаю закрытым, я сделал маленькие диалоги (отдельные по каждому вопросу). Хотя раньше круговые диалоги работали. 

Одна голова хорошо, а две лучше. А вот три, это уже змей Горыныч.

Ссылка на комментарий

Всем доброго! Работаю с паком локаций для ТЧ. Распаковал all.spawn через  acdc. У меня там новые (подключенные) локации все в одном файле «alife_lxx_unknown.ltx».  И по этому поводу у меня вопрос: логику и пути НПС на новых локациях как прописывать? Создавать файл «way_lxx_unknown.ltx» по аналогии с другими или это можно делать в других файлах, например: «way_aver.ltx». Заранее  большое спасибо. Версия игры SoC 1.004

Pir%40t%40s.gif

Ссылка на комментарий

Здравствуйте товарищи,_не подскажите ли,_каким образом можно вырезать какую-нибудь фичу_(допустим замерзание из Nature winter)_для дальнейшей адаптации к чистой игре,_или же какой-нибудь сборке?

Платформа:_Тень Чернобыля

P.S:_Как я понимаю это как-то связанно со скриптами,_а я с ними не очень дружу,_поэтому,если можно _опишите по подробнее,_что да как.

Заранее спасибо.)

 
Изменено пользователем HellRatz
  • Не нравится 1
Ссылка на комментарий

Всем привет! На досуге решил заняться полной реинкарнацией КПК. Обнаружил, что описание локаций и группировок примерно на 50% не соответствуют действительности. Описание локаций и иконки вообще еще со времен билдов. Провел детальную работу с КПК, вернул все вырезанные разделы, переписал информацию. Надеюсь в скором времени выложу версию, может кому и пригодится. Вопрос вот в чем. Возможно ли без правок движка уменьшить шрифт описаний в КПК? Хочу сделать компактно, избавиться от лишней громоздкости. 

 

Так же еще вопрос. Собираюсь вернуть дополнительные визуалы мутантам в ТЧ из ЧН. Если снорка модель я нашел, для большей вариативности, то с моделью болотной твари проблемы. Нашел в одном моде модель, но у неё "рваные" текстуры на теле. Черные дыры, нет текстур глаз (вместо них прозрачные дыры). Не понятно, в чем проблема. Странность в том, что если взять оригинальную ТЧ модель кровососа и прописать ей текстуру болотной твари из ЧН, то в милке никаких косяков не видно. Мб у той модели какие-то баги при переносе. Суть в том, что я не нашел статьи по переносу мутантов из ЗП\ЧН в ТЧ и я не знаю, как мне эту модельку болотной твари качественно воссоздать. Может кто знает, где найти урок по переносу?

  • Спасибо 1

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

Ссылка на комментарий
В 28.12.2017 в 22:18, Возрождённый сказал:

Возможно ли без правок движка уменьшить шрифт описаний в КПК? Хочу сделать компактно, избавиться от лишней громоздкости. 

Смотря каких описаний. Возможно, проще просто использовать готовый внутриигровой шрифт меньшего размера.
Интересно было бы посмотреть наработки с КПК.

  • Спасибо 1
Ссылка на комментарий

Доброго времени суток!

 

1. В каком файле прописывается, какие анимации применяет модель ГГ в ходе игры? И можно ли как-то с помощью конфигов улучшить анимацию ГГ при перемещении, ходьбе? Потому что в оригинальном ТЧ, а также ОП 2, что я сейчас прохожу, ходьба ГГ по локации напоминает больного параличом.

2. Можно ли для модели ГГ прописать анимации ходьбы, бега от НПС? Хочу, чтобы ГГ двигался также как боты в Quake 3 Arena. :)

Ссылка на комментарий

Как можно сделать что бы НПС в сталкер ТЧ замечали врага на больших расстояниях нежели в оригинальном ТЧ и что бы они на больших расстояниях атаковали их, как это сделано и в ЗП? Очень вымораживает когда тебя на средней дистанции заметили, а НПС тупо целятся в тебя и всё, стреляют только когда подойдут очень близко.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

×
×
  • Создать...