Of Ash and Steel: атмосферный экшен выходит 6 ноября 6 ноября станет важной датой для поклонников сложных и атмосферных игр - именно в этот день состоится релиз долгожданного проекта Of Ash and...
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
@sfirat, думаю вопрос больше к EB наверное. Я могу только запрет поставить что бы плагин не работал если найден EB.
п.с. но вообще советую для начала проверить что автолут хотя бы актуальный, а то мало ли. Есть любители играть на старых версиях.
Решение для ошибки "Some plugins are not compatible / ZUNIONADAPTER.DLL"
Быстрый фикс
Открываешь Gothic II\System\SystemPack.ini, находишь строку IgnoreList = и меняешь на
IgnoreList = ZUNIONADAPTER.DLL
Сохраняешь, запускаешь. AutoQuickLoot при этом продолжает работать нормально.
Почему это правильно, а не просто "Попытаться решить проблему"
ZUNIONADAPTER.DLL это старый адаптер для Union 1.0x. Новый Баланс использует обновлённый Union, где вся функциональность этого адаптера уже встроена в Shw32.dll. Два одинаковых механизма конфликтуют между собой, отсюда и ошибка. IgnoreList это штатный инструмент Union для таких случаев, не хак.
Как я это нашёл (Если интересно)
Полез в файлы сам.
Сначала вскрыл содержимое Hedin_Union_AutoQuickLoot.vdf - внутри архива лежат два файла сразу, HEDIN_AUTOQUICKLOOT.DLL и ZUNIONADAPTER.DLL. Union при загрузке распаковывает оба, НБ видит старый адаптер и отказывается стартовать.
Потом заглянул в папку $Templates$ куда Union складывает распакованные DLL - ZUNIONADAPTER.DLL там физически нет, есть только UNION_ABI.DLL и Shw32.dll от нового Union.
Дальше разобрал таблицу импортов HEDIN_AUTOQUICKLOOT.DLL - оказалось что плагин не имеет жёсткой зависимости от zUnionAdapter.dll. Он пытается его найти динамически через LoadLibrary, а основная работа идёт через Shw32.dll напрямую.
Итого - убираем старый конфликтующий адаптер через IgnoreList, НБ запускается, AutoQuickLoot цепляется к новому Union (Не факт), но всё работает. Проверил на своей машине, ошибка пропала.
Честно - не уверен на 100%. Вижу что AutoQuickLoot динамически ищет zUnionAdapter, но что происходит если не находит - неизвестно. Может тихо отключается, может работает через Shw32.dll, может вообще не работает и просто не крашит игру. Но если есть второй квиклут, то зачем первый? Смело отключаем.
Внутри Hedin_Union_AutoQuickLoot.VDF есть и старые и новые символы одновременно:
zUnionAdapter.dll + union_adapter_create_hook - старое API
?DefineCRTVersion@CUnion@UnionCore@@QAEXIIII@Z - новое UnionCore API (то же что в Shw32.dll)
?GetSysPackOption@CUnion@UnionCore@@ - снова новое
Это значит плагин написан под новый Union, но добавил поддержку старого адаптера для обратной совместимости - чтобы работал и на старых установках.
Итог - AutoQuickLoot на новом Union работает нативно. ZUNIONADAPTER.DLL там просто как запасной вариант для тех у кого старая версия Union без НБ. Фикс через IgnoreList правильный и AutoQuickLoot будет работать полноценно.
Из всех 12 плагинов только HEDIN_AUTOQUICKLOOT.DLL упоминает zUnionAdapter - и то как динамическую ссылку (не критично, игра не упадёт, ниче не ломает).
Все остальные 11 плагинов вообще не знают о существовании ZUNIONADAPTER.DLL.
Так что можно не беспокоиться - фикс ничего не ломает.
(Заморочился, да. Стало просто интересно, решил разобраться, время скоротать). Но разрабы в ближайшее время скорее всего зальют фикс.