AddNikita Posted August 5, 2022 Share Posted August 5, 2022 (edited) Здравствуйте, товарищи мододелы. Вчера вышла новая обнова 1.18. И скажу я вам - много чего поменяли. В сам built-in модуль BigWorld понадобавляли много разных функий, классов , переменных и тд . К тому же если передать не все или лишние параметры в класс или функцию, то теперь вылезает это вот. Явно видно, что изменений много, но не понятно, зачем всё это. Вроде бы, добавили только физику разрушения гусениц, но это бред добавлять столько много всего ради каких-то гусениц. Тут явно попахивает чем-то крупным, что введут позже. Ваши предположения, товарищи? Edited August 5, 2022 by AddNikita 3 @ Quote Link to comment Short link Share on other sites More sharing options...
Kurzdor Posted August 5, 2022 Share Posted August 5, 2022 TLDR: x64 only @ Quote Link to comment Short link Share on other sites More sharing options...
AddNikita Posted August 5, 2022 Author Share Posted August 5, 2022 (edited) Не думаю, что это связано с отказом от x32 систем. Да и вообще папка win32 в танках осталась до сих пор. (Ну точнее связано, да, но я думаю, что они хотят сделать что-то большое) Edited August 5, 2022 by AddNikita @ Quote Link to comment Short link Share on other sites More sharing options...
Kurzdor Posted August 5, 2022 Share Posted August 5, 2022 @AddNikita на счёт win32 глянем на релизе как будет. Я не отменяю того факта что они могут переехать на новее вещи. Хотя это ВГ @ Quote Link to comment Short link Share on other sites More sharing options...
yepev Posted August 5, 2022 Share Posted August 5, 2022 (edited) 14 минут назад, AddNikita сказал: Не думаю, что это связано с отказом от x32 систем. Да и вообще папка win32 в танках осталась до сих пор. (Ну точнее связано, да, но я думаю, что они хотят сделать что-то большое) Перепутаны причина и следствие. Это не ради отказа от х32 систем, а отказ от х32 систем ради этого. Чтообы делать новые вещи, нужно выкинуть старьё, которое этому мешает Мододелам не завидую, работы этот переход навалит много, и это явно только начало. Edited August 5, 2022 by yepev 1 @ Quote Link to comment Short link Share on other sites More sharing options...
AddNikita Posted August 5, 2022 Author Share Posted August 5, 2022 (edited) @yepev мне уже достаточно работы так поднавалило. Они ещё сломали оператор == как-то. Иногда при сравнении просто ошибки вылезают. Edited August 5, 2022 by AddNikita @ Quote Link to comment Short link Share on other sites More sharing options...
Kurzdor Posted August 5, 2022 Share Posted August 5, 2022 @AddNikita что-что? Базовый оператор, как он может ещё выкидывать эксепшны? @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted August 6, 2022 Share Posted August 6, 2022 8 часов назад, Kurzdor сказал: @AddNikita что-что? Базовый оператор, как он может ещё выкидывать эксепшны? Ну как, точно также как "если передать не все или лишние параметры в класс или функцию, то теперь вылезает это вот." В 1.18.0.0_СT выпилили файлы *AimingSystem из модуля \AimingSystem\, заменили на нативный AimingSystem. @ Quote Link to comment Short link Share on other sites More sharing options...
AddNikita Posted August 6, 2022 Author Share Posted August 6, 2022 @Kurzdor Так раньше не это вылезало вот при ошибке. @Kurzdor У меня есть мод, называется "Неигровые зоны". Так вот у меня там проверка на равенство неких векторов Vector3. Ну и при сравнении мне даёт ошибку, при чём в 1.17 всё работало. @SkepticalFox в 1.18 структуру карт не меняли, всё прекрасно распаковывается. @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted August 6, 2022 Share Posted August 6, 2022 17 часов назад, AddNikita сказал: Вроде бы, добавили только физику разрушения гусениц О нет, тут здоровенная чистка под капотом в плане питоновского интерпретатора 15 часов назад, Kurzdor сказал: @AddNikita что-что? Базовый оператор, как он может ещё выкидывать эксепшны? легко и непринужденно class A(): def __eq__(self, _): raise Exception A() == A() @ Quote Link to comment Short link Share on other sites More sharing options...
Kurzdor Posted August 6, 2022 Share Posted August 6, 2022 @Mixaill ну это я понимаю, но просто как так вышло, что базовая операция в обнове сломалась? разве что если они не обосрали код Vector3/4 @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted August 6, 2022 Share Posted August 6, 2022 (edited) Там весь Python<-->C++ связующий код перелопачен, выкинут BW::PyScript в пользу pybind11, соотвественно все что стучалось в плюсы может работает чуть-чуть иначе Собственно, ЕМНИП, пока не сделаешь pybind11::class_<T>::def(pybind11::self == pybind11::self), реализация метода __eq__(PyObject*, PyObject*) не будет создана, соответственно сравнение плюсового класса из питона будет работать немного стремно. Edited August 6, 2022 by Mixaill @ Quote Link to comment Short link Share on other sites More sharing options...
AddNikita Posted August 6, 2022 Author Share Posted August 6, 2022 @Mixaill Спасибо, учту. Но мне кажется, что это ещё не все изменения, так как если вызывать некоторые новые методы из BigWorld, то игра просто вылетает. 4 часа назад, Mixaill сказал: О нет, тут здоровенная чистка под капотом в плане питоновского интерпретатора Ну это я понял, да. Просто интересно, зачем это всё делается. Это довольно глобальные изменения. На этом просто игра вылетает, все эти новые изменения Python<-->C++ довольно кривые @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted August 6, 2022 Share Posted August 6, 2022 Только что, AddNikita сказал: На этом просто игра вылетает, все эти новые изменения Python<-->C++ довольно кривые Там еще проблема может быть с потоками. Из-за чего при exec в WOTTransmission клиент крашится. Такая беда, например есть с путча ~1.0.0 с BigWorld.wg_collideSegment и аналогичными. Если просто в Орионе сделать print BigWorld.wg_collideSegment(), то будет краш, а если в BigWorld.callback() обвернуть вызов, то сработает. Проблема в том, что в wottransmission.zip\wottransmission\transmitter.py юзается threading.Thread(). Так что если просто проверяешь вызовы чисто через Орион, то для надежности обворачивай их в BigWorld.callback(). @ Quote Link to comment Short link Share on other sites More sharing options...
AddNikita Posted August 6, 2022 Author Share Posted August 6, 2022 3 минуты назад, StranikS_Scan сказал: Так что если просто проверяешь вызовы чисто через Орион, то для надежности обворачивай их в BigWorld.callback(). Пасиб @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted August 6, 2022 Share Posted August 6, 2022 (edited) 12 минут назад, StranikS_Scan сказал: Там еще проблема может быть с потоками. Из-за чего при exec в WOTTransmission клиент крашится. Такая беда, например есть с путча ~1.0.0 с BigWorld.wg_collideSegment и аналогичными. Если просто в Орионе сделать print BigWorld.wg_collideSegment(), то будет краш, а если в BigWorld.callback() обвернуть вызов, то сработает. Проблема в том, что в wottransmission.zip\wottransmission\transmitter.py юзается threading.Thread(). Так что если просто проверяешь вызовы чисто через Орион, то для надежности обворачивай их в BigWorld.callback(). Кстати да, по умолчанию все нативные функции и объекты непотокобезопасные, и обычно требуют исполнения из основного потока интерпретатора. Edited August 6, 2022 by Mixaill @ Quote Link to comment Short link Share on other sites More sharing options...
AddNikita Posted August 6, 2022 Author Share Posted August 6, 2022 Не выдало ничего. Но при этом у меня сломалась игра - я не могу выбирать танки и скрипты интерфейсов все сломались. Кстати, хотите прикол. В BigWorld.Model() масштаб модели называется не scale, а sacle. ВГ писать разучились @ Quote Link to comment Short link Share on other sites More sharing options...
Kurzdor Posted August 6, 2022 Share Posted August 6, 2022 (edited) Лично у меня что поломалось import BigWorld try: print unicode(BigWorld.wg_getPreferencesFilePath(), 'utf-8', errors='ignore') except Exception as err: print "An error occured during gettting preferences path: ", err try: from bwobsolete_helpers.BWKeyBindings import KEY_ALIAS_CONTROL except Exception as err: print "An error occured during importing key aliases: ", err 2022-08-06 20:48:55.888: INFO: An error occured during gettting preferences path: decoding Unicode is not supported 2022-08-06 20:48:55.889: INFO: An error occured during importing key aliases: Unable to convert function return value to a Python type! The signature was 2022-08-06 20:48:55.889: INFO: (arg0: unicode) -> BW::KeyCode::Key 1. wg_getPreferencesFilePath отдаёт видимо сразу Unicode, как это допустил @Polyacov_Yury 2. Очень странная ошибка при импорте из этого файла, там выполняется сразу: Это если импортить без try/except 2022-08-06 20:52:53.740: ERROR: [EXCEPTION] (scripts/client/game.py, 187): Traceback (most recent call last): File "scripts/client/game.py", line 154, in init File "scripts/client/gui/shared/personality.py", line 374, in init File "scripts/client/gui/mods/__init__.py", line 19, in init File "scripts/client/gui/mods/__init__.py", line 67, in _findValidMODs File "scripts/common/Lib/importlib/__init__.py", line 37, in import_module File "test", line 2, in <module> File "scripts/client/bwobsolete_helpers/BWKeyBindings.py", line 428, in <module> File "scripts/client/bwobsolete_helpers/BWKeyBindings.py", line 406, in _buildReverseKeysLookup TypeError: Unable to convert function return value to a Python type! The signature was (arg0: unicode) -> BW::KeyCode::Key Edited August 6, 2022 by Kurzdor @ Quote Link to comment Short link Share on other sites More sharing options...
Polyacov_Yury Posted August 6, 2022 Share Posted August 6, 2022 (edited) Лично я одного не могу понять. Проблемы с импортами в OpenModsCore. Внутри: >>> from . import events ImportError: cannot import name events Снаружи: >>> from OpenModsCore import events ImportError: No module named events Из sys.path выброшен только scripts/game_objects. Вопрос: ЭТО ВООБЩЕ КАК О_О P.S. Код можно посмотреть вот тут: https://github.com/OpenMods-WoT/core/tree/master/source/scripts/client/OpenModsCore Edited August 6, 2022 by Polyacov_Yury @ Quote Link to comment Short link Share on other sites More sharing options...
AddNikita Posted August 6, 2022 Author Share Posted August 6, 2022 13 минут назад, Polyacov_Yury сказал: Проблемы с импортами в OpenModsCore. У меня с импортами всё ок. @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.