• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в оценке работ на конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык
    Ссылка на тему с работами участников- тык

Union - мини плагины

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.040
Благодарности
1.822
Баллы
240
  • Первое сообщение
  • #1
Здесь будут собираться плагины, создание отдельной темы для которых было бы излишним.


Плагины, распространяемые с помощью exe-инсталлятора, можно деинсталлировать им же.
Плагины, распространяемые в виде vdf тома, следует помещать в папку Data/Plugins/.
Каждый плагин, если не указано иного, должен работать на любых версиях игры: Gothic I Classic (G1), Gothic I Sequel (G1A), Gothic II Classic (G2), Gothic II Addon (G2A).
Код плагинов и сами плагины, автором которых являюсь я, можно распространять и использовать без ограничений.


При наличии нескольких одноименных вложений в одном посте следует скачивать последнее. Удалять старые вложения прав нет.

  1. Плагин zNoFocusFlag (Автор: Slavemaster). Для модостроителей. Делает NPC с флагом NPC_FLAG_NFOCUS полностью прозрачными для фокуса ГГ.
  2. Плагин AlterDamage (Автор: Slavemaster). Есть проблемы с совместимостью. Меняет формулы урона. Добавляет всплывающие сообщения о нанесённом уроне.
  3. Плагин zSavesBackuper (Автор: Slavemaster). Осуществляет резервное копирование сделанных сохранений.
  4. Плагин Union_Hotbar_1.0k (Автор: Haart). Добавляет панель быстрого доступа для предметов из инвентаря.
  5. Плагин QuickLoot (Автор: Slavemaster). Быстрый сбор предметов при помощи правой кнопки мыши.
  6. Плагин MarvinHelper (Автор: Slavemaster). Дополнительные возможности для консоли разработчика.
  7. Плагин MunitionInfo (Автор: Xeдин). Отображает кол-во стрел/болтов в инвентаре.
  8. Плагин zAsyncSaveLoad. (Автор: Slavemaster).Плагин делает окно игры отзывчивым к сочетанию Alt+Tab во время загрузки, сохранения и просмотра видео.
  9. Плагин Union_SaveLoadManager_i (Автор: Haart). Позволяет сохраняться в разные слоты без лишних усилий.
  10. Плагин zBugFixes (Автор: Slavemaster). Плагин содержит исправления некоторых ошибок движка Готики.
  11. Плагин zTorchControl (Автор: Slavemaster). Плагин предотвращает удаление горящих факелов при загрузке, а также позволяет их использовать по горячей клавише.
  12. Плагин zMarkItems (Автор: Slavemaster).Плагин осуществляет маркировку предметов внутри ячеек инвентаря.
  13. Плагин zMiscUtils (Автор: Slavemaster). Плагин реализует множество функций, не объединённых единой тематикой.
  14. Плагин SimpleRegen (Автор: Xeдин). Плагин реализует простой алгоритм регенерации жизни и/или маны.
  15. Плагин Union_Thief_Helper (Автор: Xeдин). Помощник вора. Маркировка не обворованных и обворованных NPC и подсказки при взломе.
  16. Плагин Union_XP_Bar (Автор: Xeдин). Плагин для отображения полоски опыта.
  17. Плагин OdyAlt (Автор: N1kX). Подробное многостраничное меню навыков для мода Одиссея 2.6.4.
  18. Плагин OdyAltMenu (Автор: N1kX). Подробное многостраничное меню навыков для мода Одиссея 2.7.0+.
  19. Плагин zUtilities (Автор: Franisz). Несколько удобных функций.
  20. Плагин oDamageHelper (Автор: Gratt). Для модостроителей. Позволяет менять наносимый урон с помощью скриптов.
  21. Плагин Union_DamageInfo (Автор: Xeдин). Плагин выводит урон по врагам и по главному герою.
  22. Плагин Union_RandomRainDX11 (Автор: Haart). При использовании с DX11 дождь будет начинаться в случайное время суток.
  23. Плагин Union_Ext_Stat (Автор: Xeдин). Небольшая дополнительная статистика по количеству убитых, выпитых зелий, квестам и времени игры.
  24. Плагин Union_Show_FPS (Автор: Xeдин). Простенький плагин на показ FPS для всех версий Готики, с возможностью отключения в меню и задания позиции отображения.
  25. Плагин zImprovedLegacyFrying (Автор: Slavemaster). Добавляет диалоги жарки мяса для костра и плиты.
  26. Плагин Union_Keep_Last_Save (Авторы: Gratt, Xeдин). Плагин для удобной работы с последним слотом записи.
  27. Плагин EquippedWeapon (Автор: MEG@VOLT). Для модостроителей. Добавляет функции экипировки / деэкипировки оружия.
  28. Плагин TradeMissItems (Автор: MEG@VOLT). Плагин создан для защиты от случайной продажи квестовых предметов.
  29. Плагин zUnstuckSlidingPlayer (Автор: Slavemaster). Автоматическая телепортация игрока при длительном скольжении.
  30. Плагин KillMeatBugs (Автор: MEG@VOLT). Позволяет затаптывать мясных жуков.
 
Последнее редактирование:

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.040
Благодарности
1.822
Баллы
240
Книги всегда горят как непрочитанные.
Исправил. Добавил альтернативный алгоритм для новых предметов: теперь иконки могут сбрасываться не при закрытии инвентаря, а при выделении их в инвентаре. Смотрите Gothic.ini.

zTorchControl - фикс для совместимости c zSmoothAniTransitions

zBugFixes
- устранён вылет при телепорте к людям сразу после новой игры
- ситуация вторая - ГГ попробует вытащить оружие/магии, проиграется анимация, но в итоге оружие или магия не активны (не будут взяты и нужно снова отдать команду)
Возможно, где-то в скриптах вызывается Npc_ClearAIQueue. Или не установлен патч zCEventManager_DoFrameActivity_Fix. Или анимации имеют параметры смешивания, тогда, возможно, это фиксится плагином zSmoothAniTransitions.
 

Сумрак

Участник форума
Регистрация
25 Окт 2021
Сообщения
1.550
Благодарности
609
Баллы
155
Slavemaster, Доброго времени суток! Какая папка с патчами новее, та что чуть-чуть больше? P.S. Не увидел примечание.
 
Последнее редактирование:

Caustic007

Участник форума
Регистрация
16 Окт 2022
Сообщения
16
Благодарности
3
Баллы
25
Добрый день! Подскажите, а есть отдельный плагин который бы отображал сообщение на экране при использовании ключа при открытии двери/сундука? н-р "вы использовали ключ от портового склада" или "использован ключ Джо" - в общем по названию ключа. Для понимания какой ключ где был использован. Сейчас сообщение отображается только если у тебя нет ключа.
 

Сумрак

Участник форума
Регистрация
25 Окт 2021
Сообщения
1.550
Благодарности
609
Баллы
155
Caustic007, Есть только плагин, который удаляет ключи при открытии сундуков и дверей zMiscUtils. После использования ключа на экране на короткое время появляется надпись на английском типа it_remowed_название ключа.
 

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.900
Благодарности
536
Баллы
275
Приветствую всех.
Поясните, пожалуйста, что нужно в скрипте для Union, чтобы он запускался только при загрузке определенного мода?
В одном из файлов я встретил такое вступление:
Daedalus:
META
{
    Parser    =    Game;
    MergeMode    =    true;
    Engine    =    G2A;
    Mod        =    Odyssee.mod;
};

var int UnionPickLockStrNum;

func event GameLoop()
{
     if(UnionPickLockStrNum){
         Hlp_PrintConsole(Str_Format("UnionPickLockStrNum: %i", UnionPickLockStrNum));
     };
};
Что и как нужно поменять в блоке META, чтобы плагин запускался только при загрузке определенного mod-файла?
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.847
Благодарности
5.277
Баллы
910
zExchangeInteractItemFix не справляется с интерактивными объектами - сильно замечено в архолосе с поваленными деревьями. Если убрать анимацию окон и быстро-быстро кликать по диалогу и если быстрые клики попадают на анимацию, когда ГГ начинает отходить от дерева, вызывается диалог и интерактивный объект будет удален из инвентаря.

Возможно беда есть с другими объектами, но там вроде анимации долгие и не позволяют войти в диалог тут же, а может просто косяк анимы мода, хрен разберет.
 
Последнее редактирование:

Xaruel

Участник форума
Регистрация
25 Сен 2022
Сообщения
4
Благодарности
0
Баллы
20
Hi guys, can give me some advice about these errors ... more than 10 hours I try to solve the problem in the last chapter of Odyssey, average 400 hours playing = D
I had similiar messeges before, and i could start a new game, save, than load than load my actual savegame and it was "repaired".
Now its in irdorath on the same spot, i think - caused by the same problem for over 10h now for me =D


1669374532173.png


Thankfull for any advice.

Translation by deepl:

Привет, ребята, можете дать мне совет по поводу этих ошибок .... более 10 часов пытаюсь решить проблему в последней главе Одиссеи, в среднем играю 400 часов = D
У меня были похожие сообщения раньше, и я мог начать новую игру, сохраниться, затем загрузиться, затем загрузить мое настоящее сохранение, и оно было "восстановлено".
Теперь он в Ирдорате на том же месте, я думаю - вызвано той же проблемой уже более 10 часов для меня =D


Благодарен за любой совет.

bersetzt mit www.DeepL.com/Translator (kostenlose Version)
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.847
Благодарности
5.277
Баллы
910
N1kX, как ни старался, не смог воспроизвести этот баг.
Щас понял как делается, после закрытия диалога нажимаем быстро кнопку вперед, чтобы снова войти в интерактивный объект и оп топора нет

Похоже нужен патч запрещающий проигрывать другие анимации, пока не закончится состояние BS_MOBINTERACT_INTERRUPT

В г1 быстрым нажатием кнопки вперед вещи можно умножить, в Г2 видимо удалить

Youtube
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.040
Благодарности
1.822
Баллы
240
На плите можно, например, из одного сырого мяса сделать 2 жареных.
Получилось исправить только запретом такого поведения в Г2 вообще. Теперь мясо на костре со сковородкой быстро не пожаришь.
Union:
#engine [G2, G2A]
    #patch [zDontReverseMobState]
        // engine specific
        INT text_oCMobInter_CanChangeState_jz_IsInState = ZenDef(0x00000000, 0x00000000, 0x006C1BE2, 0x0071FC72)
        INT text_oCMobInter_CanChangeState_return_false = ZenDef(0x00000000, 0x00000000, 0x006C1DEC, 0x0071FE7C)
        
        INT field_oCMobInter_useWithItem_length = ZenDef(0x184, 0x184, 0x1A4, 0x1A4) + 8
        INT field_oCMobInter_Direction = 0x214
       
        INT const_MOBINTER_DIRECTION_UP = 1
        // end of engine specific
       
        #assembler [text_oCMobInter_CanChangeState_jz_IsInState]
            orgcode
           
            mov eax, [esp+0x4C] ; from
            test eax, eax
            jnz continue
           
            mov eax, [esp+0x50] ; to
            cmp eax, 1
            jne continue
            
            mov eax, [esi+$field_oCMobInter_useWithItem_length]
            test eax, eax
            jle continue
           
            mov eax, [esi+$field_oCMobInter_Direction]
            cmp eax, $const_MOBINTER_DIRECTION_UP
            jne $text_oCMobInter_CanChangeState_return_false
           
        continue:
        #/assembler
    #/patch
#/engine
 
Последнее редактирование:

Czudak

Участник форума
Регистрация
29 Июн 2019
Сообщения
180
Благодарности
95
Баллы
125
На плите можно, например, из одного сырого мяса сделать 2 жареных.
Получилось исправить только запретом такого поведения в Г2 вообще. Теперь мясо на костре со сковородкой быстро не пожаришь.
Union:
#engine [G2, G2A]
    #patch [zDontReverseMobState]
        // engine specific
        INT text_oCMobInter_CanChangeState_jz_IsInState = ZenDef(0x00000000, 0x00000000, 0x006C1BE2, 0x0071FC72)
        INT text_oCMobInter_CanChangeState_return_false = ZenDef(0x00000000, 0x00000000, 0x006C1DEC, 0x0071FE7C)
       
        INT field_oCMobInter_Direction = 0x214
       
        INT const_MOBINTER_DIRECTION_UP = 1
        // end of engine specific
       
        #assembler [text_oCMobInter_CanChangeState_jz_IsInState]
            orgcode
           
            mov eax, [esp+0x4C] ; from
            test eax, eax
            jnz continue
           
            mov eax, [esp+0x50] ; to
            cmp eax, 1
            jne continue
           
            mov eax, [esi+$field_oCMobInter_Direction]
            cmp eax, $const_MOBINTER_DIRECTION_UP
            jne $text_oCMobInter_CanChangeState_return_false
           
        continue:
        #/assembler
    #/patch
#/engine

Any details on how to test it on interactive mobs other than the pan and/or stove? I can't seem to reproduce the duplication and/or removal of item bug on other interactive mobs.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.040
Благодарности
1.822
Баллы
240
Any details on how to test it on interactive mobs other than the pan and/or stove? I can't seem to reproduce the duplication and/or removal of item bug on other interactive mobs.
For example, itmi_stomper, itmi_hammer, itmi_saw, itmi_scoop can dissapear. You just press W in the end of interaction.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.847
Благодарности
5.277
Баллы
910
На плите можно, например, из одного сырого мяса сделать 2 жареных.
Получилось исправить только запретом такого поведения в Г2 вообще. Теперь мясо на костре со сковородкой быстро не пожаришь.
Union:
#engine [G2, G2A]
    #patch [zDontReverseMobState]
        // engine specific
        INT text_oCMobInter_CanChangeState_jz_IsInState = ZenDef(0x00000000, 0x00000000, 0x006C1BE2, 0x0071FC72)
        INT text_oCMobInter_CanChangeState_return_false = ZenDef(0x00000000, 0x00000000, 0x006C1DEC, 0x0071FE7C)
       
        INT field_oCMobInter_Direction = 0x214
       
        INT const_MOBINTER_DIRECTION_UP = 1
        // end of engine specific
       
        #assembler [text_oCMobInter_CanChangeState_jz_IsInState]
            orgcode
           
            mov eax, [esp+0x4C] ; from
            test eax, eax
            jnz continue
           
            mov eax, [esp+0x50] ; to
            cmp eax, 1
            jne continue
           
            mov eax, [esi+$field_oCMobInter_Direction]
            cmp eax, $const_MOBINTER_DIRECTION_UP
            jne $text_oCMobInter_CanChangeState_return_false
           
        continue:
        #/assembler
    #/patch
#/engine
Лестницы сломались.
 

Сахар

Участник форума
Регистрация
5 Янв 2017
Сообщения
53
Благодарности
38
Баллы
180
Патч для G1 zNoRMBJump не работает на юнион 1.0m. На предыдущей версии 1.0l все в порядке.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.040
Благодарности
1.822
Баллы
240
Патч для G1 zNoRMBJump не работает на юнион 1.0m. На предыдущей версии 1.0l все в порядке.
Потому в Юнион появился собственный обработчик мыши и пропатченный код просто не используется. Опция NoDirectXAxisMode=1 в SystemPack.ini должна позволить патчу работать как задумано.
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.345
Благодарности
1.888
Баллы
335
Slavemaster, интересно что иногда один и тот же вопрос почти одновременно появляется на немецком и русском форуме и вроде как от разных людей ))
 

Caustic007

Участник форума
Регистрация
16 Окт 2022
Сообщения
16
Благодарности
3
Баллы
25
Привет! за плагин zAsyncSaveLoad огромное спасибо! Всякий раз когда сворачивал игру и переключался обратно - она начинала лагать, дергаться и нужно было полностью выходить из игры чтоб исправить ситуацию. Сейчас же спокойно свернул ее, написал это сообщение с благодарностью и обратно в нее ))

upd: единственное пожелание, если ещё принимаются - можно ли при сворачивании игры останавливать проигрыш музыки?
 
Последнее редактирование:
Сверху Снизу