Im-dex / xray-162

XRay engine 1.6.2 (S.T.A.L.K.E.R: Call of Pripyat) evolution
Apache License 2.0
47 stars 12 forks source link

Yanov arrival bug #9

Closed Im-dex closed 7 years ago

Im-dex commented 7 years ago

Azot's dialog doesn't start.

Im-dex commented 7 years ago

Appeared since 7d36860e7e7f8062bd129d4ea6b879a420c9fcf8 It seems as yet another issue with LuaJit 2.0.4

Xottab-DUTY commented 7 years ago

If that helps, we do not have this issue on OpenXRay, that's somehow fixed.... P.S. but we have issue with sleep UI - it crashes. That crash related to new LuaJIT too.

Im-dex commented 7 years ago

@Xottab-DUTY Thanks for notice. It's pretty strange, but I have no issues with sleep ui, it works well.

ForserX commented 7 years ago

У меня после обновления LuaJIT вообще ориг.локи перестали запускаться :) Так и забил на них...

ShokerStlk commented 7 years ago

Обычно баги такого рода случаются, когда по тихому ломается Lua. (зависания биндеров и прочие чудеса) В оригинальном сталкере (по крайнем мере в релизном билде) любые скриптовые ошибки luabind-а (НЕ синтаксические, а например переданные неверные типы) заглушаются, что практически всегда приводит к тому, что определённый скрипт или биндер объекта останавливается, пока остальные продолжают работать.

Проще всего проверить в меню через UI в скриптах - в любом удобном месте модифицировать вызов любой экспортированной из движка функции, например передав ей nil, больше\меньше аргументов, или другой объект в качестве параметра. В оригинальной игре такие ошибки при вызове движковых функций просто зависают скрипт.

В OpenXRay после перехода на новый LuaBind все ошибки такого рода сразу приводят к вылету. Что именно за это отвечает, я к сожалению сказать не могу. Нужно смотреть где перехват ошибок в движке происходит. (CScriptEngine или как то так). Возможно сам luabind надо пересобрать с другими define-ами, чтобы он бросал\не бросал исключения при ошибках.


Ещё можно попробовать в void CScriptEngine::setup_callbacks() (название класса из OpenXRay, в оригинале может отличаться) включить вызов luabind::set_pcall_callback (он define-ом MASTER_GOLD закрыт). М.б тогда проявится причина ошибки.

Im-dex commented 7 years ago

@ShokerStlk Спасибо за информацию, попробую поковырять отладочный билд.

ForserX commented 7 years ago

Хм... А действительно, надо полазить. Спасибо, Шокер! Если и правда получиться, стоит на gameru упомянуть.

Xottab-DUTY commented 7 years ago

Если кто-то таким образом найдёт как восстановить обратную совместимость со скриптами GSC (в чём у OpenXRay проблемы), то мы будем очень рады. :)

ghost commented 7 years ago

I believe this bug is solved with ForserX's repo, in particular, the changes to Level.cpp and Level_Network.cpp in xrGame. I've been on Jupiter for a while now with no crashes.

ForserX commented 7 years ago

But I have enough other bugs in scripts, get out rarely and accidentally. But they are very easy to correct.

ForserX commented 7 years ago

Ставь 2.0.5, у меня с переходом на него баги Луа ушли.

Im-dex commented 7 years ago

@ForserX Хм, интересно. Попробую обновить, спасибо.

Im-dex commented 7 years ago

It seems to be fixed