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

Редактирование движка X-Ray


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

@Kondr48, ну какая конкретика тебе нужна? Есть баги, их не много, но хватает, играй-тестируй и со временем и ты их увидишь, и сразу оперативно правь, там по памяти нет ничего сложного. Не полотно же готовых фиксов тут спойлерить в конце то концов.

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

 

Сбылась мечта идиота ) Нашёл, где включить воздействие аномалий на НПС в ЗП
в классе CSpaceRestrictor в методе net_Spawn убираем строчку
spatial.type &= ~STYPE_VISIBLEFORAI
Может, конечно, я тут Америку не открыл, но мне никто так и не подсказал.
Правда после включения наблюдается интересная картина. Если сталкер после первого хита выжил, он чуть отходит назад и начинает кидать болты )) Правда не совсем туда, куда надо. Да и выглядит это кривовато, но думаю эту схему можно отключить и подключить скриптовую, например из amk для ТЧ

 

 

Что файл?

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

Уважаемые знающие. Закралось подозрение что я что-то делаю не так при алгоритме размещения скомпилированного x-ray 1.0007 rc1. Помогите разобраться, что именно не так:

игра установлена в D:\Games\stalker_soch\

1) компилирую исходники, результат в X:\binaries\

2) копирую dll и exe в чистую папку D:\Games\stalker_soch\bin 

3) 

d3dx9_31.dll

d3dx9_34.dll
dbghelp.dll
eax.dll
Microsoft.VC80.CRT.manifest
msvcp71.dll
msvcp80.dll
msvcr71.dll
msvcr80.dll
protect.dll
protect.drv
protect.exe
stlport.5.0.dll
stlport.5.0.dll.manifest
wrap_oal.dll

 

4) запускаю запускаю с установленной папки с игрой D:\Games\stalker_soch\bin\XR_3DA.exe 

5) вылет 0023:6C0EA260 xrLua.dll, luaF_findupval(), s:\xrlua\src\lfunc.c, 61

Благодарю!

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

@Winsor, за это отвечает файл fsgame.ltx, и название папок самой игры и bin не влияют. Хотя в твоём случае всего исключать нельзя, так как, это 1.0007 другой движок.

Изменено пользователем Дизель
  • Спасибо 1

andreyholkin.gif

rod_cccp.gif

 

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

 

 

Хотя в твоём случае всего исключать нельзя
- а если бы был 1.0006 - порядок действий правильный? или я что-то не так делаю на каком либо этапе?
Ссылка на комментарий

в классе CSpaceRestrictor в методе net_Spawn убираем строчку

spatial.type &= ~STYPE_VISIBLEFORAI

Что файл?

space_restrictor.cpp. Ориентировочно строка 70.
  • Нравится 1
  • Согласен 1
Ссылка на комментарий

В колбеке на хит актору (да и не только) есть такой аргумент iAmount. Гугл перевел его как "количество". То есть это сила хита? Как этим пользоваться? Почему то при использовании как числовое значение возвращает nil.

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

У меня вопрос, куда делись ссылки на репозиты из шапки?


На форуме flossy-community я нашёл ссылки на некоторые репозиты, вполне рабочие.

Добавлено Вспышка,

Тупо устарели!

Жаль, у кого есть поделитесь?!

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

Всем доброго времени суток, столкнулся с такой проблемой. Пропатчив xrGame.dll, а именно - сделал активными слоты: ножа, бинокля, фонаря и детектора. А так же вписал конфиги из OLR. В итоге работают все слоты, кроме слота детектора. Сам слот не виден, и при попытке сменить его в слоте вылетает вот это

stack trace:

0023:041A9489 xrGame.dll
0023:0414C52C xrGame.dll
0023:041A8C3A xrGame.dll
0023:041A7BD6 xrGame.dll
0023:041892B0 xrGame.dll
0023:041A91B0 xrGame.dll
0023:041892B0 xrGame.dll
0023:0414AC39 xrGame.dll
0023:042111DC xrGame.dll
0023:03F37410 xrGame.dll

[error][ 8] : Недостаточно памяти для обработки команды.

 

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

Знаю, что не в тему. К сожалению тема вылетов закрыта, но данный вопрос меня очень интересует. Решал кто эту проблему?

FATAL ERROR

[error]Expression : assertion failed
[error]Function : xrServer::Process_event_ownership
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\xrServer_process_event_ownership.cpp
[error]Line : 23
[error]Description : e_parent

 

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

@naxac, Есть, там говорится, что вылет рандомный. Но решения как такового - нет. Вот я и интересуюсь, решал ли кто эту проблему?

Добавлено Dennis_Chikin,

"Кто-то" - точно решал. Тупо заменив собственно вылет на просто ругаться в лог и ничего не делать.

 

Но вот кто и где - не помню.

Ссылка на комментарий
Уважаемые, очередное отличие непонятное 1.0006 от 1.0007 

при чтении строковых ресурсов 1.0007 получает вылет при чтении строки больше 4096 байта 

[error]Expression    : HEADER+s_len_with_zero < 4096

[error]Function      : str_container::dock

[error]File          : xrstring.cpp

[error]Line          : 24

 

1) зачем ПЫСы придумали str_container (crc зачем то....) и хранят в нем строковые данные, прочитанные из xml?

2) кто как обходил эту проблему?

Притом что 1.0006 эти же строки вычитывал и выводил прекрасно. Речь идет, например, о дневниках контроллера из НС. 

Благодарю за разъяснения!

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

ТЧ 1.0006 + НС

есть такой конфиг например - arc_string_table.xml  - там дневники контролера, они больше 4к... ~7k по длинне. каждый.

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

 

 

при чтении строковых ресурсов 1.0007 получает вылет при чтении строки больше 4096 байта 

Разумеется. Более того, во всех версиях ТЧ так.

 

 

 

зачем ПЫСы придумали str_container (crc зачем то....) и хранят в нем строковые данные, прочитанные из xml?

Чтобы строки не дублировались в памяти при множественном обращении к ним по id.

 

 

 

кто как обходил эту проблему?

Надо переводами строк текст отбивать. Это ж наркомания - текст в 4 Кб одним абзацем. 

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

 

 

Разумеется. Более того, во всех версиях ТЧ так.

Хм. к сожалению - исходников 1.0006 не нашел,утверждать точно не могу. 1.0006 (предыдущий бинарник) эти же ресурсы читает и выводит в энциклопедию без проблем... в моем случае - макроновская адаптация движка 1.0006 (но там xrCore.dll не менялся), до этого был обычный 1.0006 - т.е. явно есть отличия в работе со строками. 

 

 

строки не дублировались в памяти

использование dwCrc в движке есть только в менеджере управления shared memory - судя по всему для контроля за целостностью общих ресурсов. это понятно. я думал - это как то попроще сделано... и в Inventory.cpp ...

 

 

Надо переводами строк текст отбивать. Это ж наркомания - текст в 4 Кб одним абзацем

Хм. так там и отбивается. т.е. один блок в тегах <text></text> более 4к, разбитый на несколько абзацев переводами строки, вычитывается парсером одним куском. 

Просто так заккоментировать эту проверку нельзя, неизвестно к чему это приведет , слишком много где в игре используется буфер в 4к при работе со строками...

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

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

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

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

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

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

Войти

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

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

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