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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
  • Первое сообщение
  • #1
1767600363729.png

RU EN

 

Вложения

  • Union_Primary_Universal 12.02.2022.zip
    44 MB · Просмотры: 28.400
  • Union 1.0m 26.06.2022.zip
    11,8 MB · Просмотры: 967
  • Union 1.0m 26.06.2022 v2.zip
    11,8 MB · Просмотры: 621
  • Union 1.0m 26.06.2022 v3.zip
    11,8 MB · Просмотры: 30.712

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
I have worked with Detours before and made mistakes but never something like this happened.
Then you're just lucky. Function cannot work if it has wrong signature :confused:


What is the preferred way of writing to the Union console? To best of my knowledge, this isn't in the tutorials.
Код:
cmd << 255.7 << tab << "qwerty" << endl;
With Union.ini showDebugWindow = true
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
tatun, ну ошибки специфические, скажем с инвентарем по ощущениям пропал указатель на контейнер нпс. Персонажи удаляются если из инвентарь пуст?
Про пирокинез тоже посмотрим, уж не знаю на какой стороне проблема. Движка или скриптов.

Или нужно было начинать новую игру? Стимовская готика+steamfix с этого сайта, без модфикса.
Нет, новую не обязательно, если игра чистая. Но скриптовый фикс я бы советовал.
От D36 или ElderGamer, без них первую готику лучше не запускать.
 
Последнее редактирование:

tatun

Участник форума
Регистрация
31 Янв 2009
Сообщения
1.216
Благодарности
450
Баллы
245
Gratt, с инвентарем походу происходило следующее: я забирал предметы не мышью,а "действие-D" чтоб десятками сразу. Возможно в спешке иногда букву D я нажимал первее,и указатель переходил на мой инвентарь, а назад у же не хотел. Поэтому случался баг.
Хотя: мертвого стража перед кладбищем орков мне не удалось облутать даже мышкой. Все равно происходил глюк. Пришлось его так и оставить лежать. Перезапускал игру проверял,но толку не было.
С модфиксом играть не хочу,так как это уже не просто фикс,а мод. А я хотел погонять в оригинал.
 

ThielHater

Участник форума
Регистрация
28 Сен 2008
Сообщения
314
Благодарности
1
Баллы
175
I would like to write a plugin for G1 Spacer but it's not loaded. Apparently plugins are loaded regardless of the target they were compiled for (G1, G2A, etc). So I guess Union instead checks the CRC32 hash of the executable and will only act if that hash is known. Do you have plans to add Spacer 1/2 as an engine to Union? I don't need full support with engine classes and stuff, just let me load a plugin and hook some functions. :)
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
I would like to write a plugin for G1 Spacer but it's not loaded.
Nonono... Plugins will start, but only function to be called automatically - DllMain.
Yes, union knows G1, G1A, G2 and G2A engines. But the Game address space != Spacer address space.
U can try: Select a Gothic I namespace. In all called functions replace zCall addresses to equal Spacer addresses.
In theory, its should work.
 

ThielHater

Участник форума
Регистрация
28 Сен 2008
Сообщения
314
Благодарности
1
Баллы
175
Nonono... Plugins will start, but only function to be called automatically - DllMain.
Sorry but I can't confirm that. :confused:

But the Game address space != Spacer address space.
A great feature of Union is that all engine classes are declared and their functions can be called. I know that the memory addresses differ for the Spacer, that's what I meant with "I don't need full support of engine classes".
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
Sorry but I can't confirm that.:confused:
Ok, do that.
Create a .patch file in ANSI encoding and write same code:
Код:
#engine [your spacer crc]
  #patch
    LoadPlugins("your plugin name")
  #/patch
#/engine
Where <your spacer crc> is crc32 of your spacer.exe and <your plugin name> is name of dll.

A great feature of Union is that all engine classes are declared and their functions can be called. I know that the memory addresses differ for the Spacer, that's what I meant with "I don't need full support of engine classes".
And maybe in class sizes or vtable... I don't give guarantees that such api will work if you simply replace addresses of functions. I'll think about spacer api, but for now I can offer a `spacer names` same as 'gothic names'.
1582057607069.png
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
Такс . . .

Обновил топик, кратко описал смысл того, что вообще тут происходит и как мы тут оказались.
Ну и кому интересно, может посмотреть на полный список правок Union'а по части .patch файла и ознакомиться со списом параметров .ini файлов.
А также:
On top of the tab appeared the English version of the thread.
1582138047836.png
 

ThielHater

Участник форума
Регистрация
28 Сен 2008
Сообщения
314
Благодарности
1
Баллы
175
Create a .patch file in ANSI encoding and write same code [...]
Thanks, that worked. :)

It was not easy to read the Russian documentation with machine translation. Translating the thread was the first step. I hope that Union will continue to spread as soon as the documentation is available in English and not just remain a "secret" of the Russian community.
 

Quasar767

Участник форума
Регистрация
14 Июн 2017
Сообщения
133
Благодарности
22
Баллы
185
Gratt

есть ли возможность,что бы патчи запускались как плагины?

1582287227517.png
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
Quasar767, патч запускается автоматически, если находится в поле зрения игры. То бишь он может просто лежать в папке system или запускаемом vdf/mod томе. И по инициативе vdfs32g.dll они будут запущены при старте юниона. Важно только чтобы расширение такого файла было .patch, а кодировка ansi. Всё.
 

Quasar767

Участник форума
Регистрация
14 Июн 2017
Сообщения
133
Благодарности
22
Баллы
185
Gratt

а как именно патчи собирать в vdf?
а то ни как не работает через vdf
 

Quasar767

Участник форума
Регистрация
14 Июн 2017
Сообщения
133
Благодарности
22
Баллы
185

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
Quasar767, ну и? Добавляешь в vdf и всё. Можешь убедиться в запуске путем добавления в блок #патча функцию MessageBox("patch started")
 

Quasar767

Участник форума
Регистрация
14 Июн 2017
Сообщения
133
Благодарности
22
Баллы
185
да,теперь работает,в сингл,а в мп и union запускается,но патчи игра не видит.....может какие нибудь файлы тоже должны быть в vdf?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.430
Благодарности
4.771
Баллы
625
Quasar767, не может такого быть, если запускается юнион. Опиши процесс запуска и какие исполняемые файлы использует мп.
 

Quasar767

Участник форума
Регистрация
14 Июн 2017
Сообщения
133
Благодарности
22
Баллы
185
union скрипты те что в длл работают отлично в мп,а вот патчи...мп их не видит
мп использует ини,кфг, длл файлы ну и вдф
может быть есть возможность собрать патчи в длл?
 

Quasar767

Участник форума
Регистрация
14 Июн 2017
Сообщения
133
Благодарности
22
Баллы
185
пака Accrescere
где Data в нем gmpa.vdf
так же систем
gmp.dll
gmp_config.cfg
gmp_connect.cfg
GMPLauncher.exe

гмп видит G2_NR_Plugin.dll, Hotbar.dll
 
Сверху Снизу