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

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

Готика 2: НВ AST (Agama Script Tools) 002

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Накидали тут вместе с jr13san'ом плагин, позволяющий адекватно сворачивать/разворачивать главное окно готики. При сворачивании окна, игра автоматически ставится на паузу, при разворачивании - пауза снимается, вобщем пользуйтесь на здоровье.

Так же прилагается исходный код(проект под Visual Studio 2012 ).
 

Вложения

  • win_fix.7z
    31,4 KB · Просмотры: 172
  • AST_Plugin.7z
    2,6 MB · Просмотры: 248
Последнее редактирование:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
[Большое обновление #2]
Код:
изменения касаются AST.dll и плагинов:
- Теперь для хранения плагинов можно использовать папку Plugins
- Добавлены новые инструменты перехвата:
    CCallBack: добавлен ряд методов
        DetachTree  - удаляет всю ветку хуков по указанному адресу
        Redefine    - замещение перехваченного метода на другой
        Protect     - ставит защиту на важные хуки. далее их нельзя ни удалить, ни изменить, ни подключиться дочерним
        Unprotect   - снимает защиту
        IsProtected - проверяет имеет ли хук защиту
        FindHook    - возвращает информацию о хуке, если он существует
     
    CInvoke: добавлен ряд методов и флаги имеют своства битовых масок
        IVK_PROTECTED   - инвок содержащий этот флаг будет защищена от изменений
        IVK_REDEFINE    - если хук по ардесу уже существует, данный флаг позволит изменить его через CCallBack::Redefine. иначе операция вызовет событие CCallBack::Attach
     
        DetachTree  - удаляет всю ветку хуков по указанному адресу
        Protect     - ставит защиту на важные хуки. далее их нельзя ни удалить, ни изменить, ни подключиться дочерним
        Unprotect   - снимает защиту
     
- Немного изменена логика циклических таймеров
    если в качестве задержки указать zTOnce, работа таймера будет прервана, но не заморожена.
    небольшие изменения в процедуре отслеживания времени.
- Пополнен zobject.cpp
- G2API пополнено новыми классами.

- Ряд фиксов предыдущей версии.
Исправления по части компиляции скриптов.
  -Улучшена работа метода zCParser::Error, теперь при возникновении ошибки препятствующей дальнейшей компиляции, в сообщении будет указан тип ошибки, номер строки, имя файла.

Процедура обновления:
заменить AST.dll в папке system
Для плагинов заменить AST.lib, zobject.cpp, AST_003.h, ASTAPI, G2API в директории проекта, - Построение/Перестроить решение.

 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
ВАЖНО: О предстоящей сборке v1.004:
Следующая сборка, скорее всего, будет финальной. По сути, мы уже выжали из расширителя все что можно, а значит пора ставить точку и заняться непосредственно микрорасширениями в общее пользование.

Мы уже давно добились своей цели - написать расширитель, который не занимался бы микропатчингом,
Без имени4.png
и изобретением костылевелосипедов (аля G2Ext, который в свое время правильно начал, но неправильно кончил). Осталось только вылизать и довести все что есть до ума. И да, мы по прежнему готовы бескорыстно помочь любым разработчикам разобраться в движке и реализации.

Собственно в чем суть:
1. Считаю идею универсальной библиотеки изжитой и не очень оправданной. AST довольно продолжительное время представляло из себя не только набор инструментов движка, но также и сильно модифицировало его внешние функции, внедряла дополнительный функционал в его работу и фиксило логические косяки.
· Далее весь проект будет разбит по частям, где во главе будет стоять ядро.
Библиотека, представляющая из себя хаб/менеджер внешних библиотек. Никак не влияет на движок, но предоставляет плагинам доступ к модулям перехвата.
· Для тех, кто желает заниматься только скриптовыми модификациями либо не шарят в C/C++, будет создана собственная библиотека исключительно со внешними функциями. Большая часть будет взята из AST, а поверх будут добавляться новые с постепенными обновлениями библиотеки.
· Далее все инструменты SDK будут перенесены в 3ю библиотеку, также включающую в себя API движка.
· Следующая библиотека - фиксы движка. Все косяки, которые сложно или невозможно править через СП, будут храниться в ней.

Ядро уже работает в режиме полной совместимости. Как известно, мы занимались исключительно второй частью, поскольку было необходимо вручную создавать еще один API для G1 (напомню, что это более 100 классов, или даже 150) что даже банально лень (И нет, лень как была так и осталась, просто мы написали софтину, которая пишет эти самые классы вместо нас ;), а при желании еще и строит виртуальные таблицы). Правильно написанное расширение теперь можно использовать одновременно и на G1 и на G2.

Ядро и плагины можно спокойно упаковать в VDF архив. Так что собрав мод с некоторым количеством плагинов можно будет не волноваться по поводу засраной папки Systems. Если в архивах встречаются одноименные библиотеки, VDFS согласно своему принципу выдаст версию исходя из приоритетов vdf.

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

Меняется только архитектура, а не суть. Количество изменений в плагины будут зависеть только от вашего желания, либо подстроиться под новый стандарт, либо оставить все как есть :confused:
 
Последнее редактирование:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
круглая миникарта. суть даже не в ней, а в новом инструменте до которого раньше руки не доходили. словом это произвольный CViewSample, унаследованный от zCView, он будет доступен в тулзах с релизом 004. ну а следовательно вместо круглой карты можно нарисовать член или кролика, кому что ближе.
 

Lev-Lion


Модостроитель
Регистрация
25 Апр 2006
Сообщения
182
Благодарности
273
Баллы
230
Здорово придумали с миникартой. :)
Интересно, если немцы выпустят свой РеГот, будет ли он совместим с АСТом... Мощный рендер + АСТ = современная Готика. Можно это отрицать сколько угодно (в силу настольгии по трехгранным деревьям), но будущее Готики за современной графой (более или менее).
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
никогда он не будет совместим ни с одним пакетом на готику. да и в гробу я видал регот этот
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
круглая миникарта. суть даже не в ней, а в новом инструменте до которого раньше руки не доходили. словом это произвольный CViewSample, унаследованный от zCView, он будет доступен в тулзах с релизом 004. ну а следовательно вместо круглой карты можно нарисовать член или кролика, кому что ближе.
Некоторые мысли:
- Когда вращается карта это выглядит дико, особенно когда деревья вверх ногами становятся. В оригинале вроде стрелка положения Гг вращалась, а не карта.
- Если делать что-то подобное, то вместо юзания карты, было бы правильнее на мой взгляд, рендер определенного куска мира вокруг Гг заюзать и выводить его в этот "кругляшек".
- Не хватает маркеров сторон света и их шкалы деления.

Как-то так.. ::)
 

Lev-Lion


Модостроитель
Регистрация
25 Апр 2006
Сообщения
182
Благодарности
273
Баллы
230
никогда он не будет совместим ни с одним пакетом на готику. да и в гробу я видал регот этот
Я не в восторге от того что, аффтар, вместо того, чтобы грамотно запилить ДХ11, принялся за совершенно иную разработку. Эта погоня за двумя зайцами обычно заканчивается... ничем. А жаль. ДХ11 многообещающий проект.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Лев, а разве он должен подчищать за другими ?! :)
 

Lev-Lion


Модостроитель
Регистрация
25 Апр 2006
Сообщения
182
Благодарности
273
Баллы
230
Лев, а разве он должен подчищать за другими ?! :)
Не совсем понял кто и за кем должен подчищать. Я и не имел этого в виду. :)
Просто мне грустно от того что забросили идею перевоплощения Готы в современную графу ДХ11. Это зов времени.

А вообще мы убрели куда то не по теме. За сим, закачиваю флуд.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Воплощение готы в DX11, да даже 9, без рефакторинга движка, это в разы сложнее чем написать новый двиг.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
I have a problem. I have AST.DLL (0.003 - from this topic) and new plugin.

AST.DLL is loaded correctly, but the plugin does not. The plugin was created on Visual Studio 2017 and 2012.

I have an error after starting the game:

https://cdn.discordapp.com/attachments/473858522002620416/499974996291092486/unknown.png
Bad plugin name or problems with your code. Example: if plugin loaded before engine, u cant create global ZenGin objects because engine not initialized. Explore it, comment parts of the code and if the game will be able to run - bug is found in the last comment.
 

Fabiosek

Участник форума
Регистрация
17 Июн 2017
Сообщения
147
Благодарности
47
Баллы
190
No, the name is correct. The plugin works for another person (author).
It does not work with me.
 

Fabiosek

Участник форума
Регистрация
17 Июн 2017
Сообщения
147
Благодарности
47
Баллы
190
MOD.ini and AST_Plugin_V1.003.07_Snapshot.dll are there: C:\Program Files\JoWood\Gothic II Złota Edycja\System

MOD.ini:

[FILES]
dll=AST.dll

[PLUGINS]
PluginList=AST_Plugin_V1.003.07_Snapshot.dll
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Сверху Снизу