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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
    Скрыть объявление
  2. Форум аддона "Возвращение" 2.0:
    — Обсудить игру, почитать о прохождениях и/или разрешить свои вопросы по игре вы можете в одной из тем одноименного форума. Посетить...
    — Прочитать историю изменения и/или скачать последнюю версию аддона "Возвращение", вы можете на страницах наших ресурсов. Скачать...
    Скрыть объявление

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

Инструментарий для работы с движком(ZenGin) и расширения возможностей его скриптов(Daedalus)

Модераторы: Dimus
  1. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    AST.png

    Актуальная версия v1.002
    Download_min.png


    Что такое AST:
    Как известно, серия Gothic не удостоилась чести заполучить в распоряжение собственный SDK.
    Данный пакет исправляет это недоразумение и предоставляет свои инструменты расширения функционала движка.

    Как используется AST:
    Можно определить две категории использования пакета:
    1. В качестве расширителя скриптов. В этом случае достаточно скопировать библиотеку в папку system, после чего станут доступны уже встроенные в AST внешние функции.
    2. Как дополнение к движку. Тогда необходимо создать проект-плагин для AST. Возможности инструментария ограничиваются исключительно навыками и фантазией пользователя.

    В каких случаях целесообразно использовать AST:
    Нужно понимать, что скрипты созданы только для того, чтобы вынести из движка громоздкую и монотонную рутину. Они не предназначены для фиксов или расширений, а любые сложные операции совершаются через внешние функции. Если вы понимаете, что Вам мало существующих инструментов или ситуация вынуждает выдумывать велосипеды, имеет смысл прибегнуть к помощи AST.

    Почему следует использовать именно AST:
    В первую очередь AST - это каноническая архитектура. Можете быть уверены, что используя наш пакет, вы работаете с движком, а не посредниками.
    Во-вторых, AST модульный. Его структура очень гибкая и способна связывать несколько плагинов в единую цепочку расширений. Помимо всего прочего, каждый плагин также вправе иметь собственный SDK, как и головная библиотека. Таким образом, к вашему личному проекту также можно писать дополнения. *thumbs up*

    Совместимость и дополнительное ПО:
    Пакет полностью самодостаточен и использование стороннего ПО не является обязательным. Однако официально совместимыми считаются только SP и DX11. Ikarus или G2 Ext использовать категорически не рекомендуется и, при обнаружении проблем совместимости, техническая помощь оказываться не будет.


    Полезные ссылки:
    По всем вопросам смотрим этот раздел
    Видео демонстрации можно найти тут


    о предстоящей сборке v1.003
    изменения:
    классы (открыть)


    измененные:
    CInvoke и CCallBack (открыть)

    добавлены методы Attack (ручной перехват функции), Detach (ручное удаление перехвата).
    pInvoke.Attach()
    pInvoke.Detach()


    возможность напрямую передавать адрес метода класса в качестве указателя функции переадресации.
    &Class::Method

    флаг создания хука нижнего уровня при наличии существующего перехвата по адресу.
    CInvoke<type> pInvoke_first(0x00000000, &Class::Method)
    CInvoke<type> pInvoke_second(0x00000000, &Class::Method, Auto)




    CMessage (открыть)

    содержит базовый набор методов: обычное сообщение, предупреждение, ошибка, окно выбора, критическая ошибка (останавливает выполнение программы).
    при использовании встроенных в AST сообщений, окно игры будет автоматически сворачиваться, если до этого оно было развернуто на весь экран.


    CPlugin (открыть)

    изменен алгоритм загрузки и определения плагинов. все модули загружаются сразу посте AST.


    CScreenShot (открыть)

    предоставляет инструмент переопределения формата, в который будет сохраняться конечное изображение (JPEG, PNG, BMP), а также позволяет задавать собственные имена файлам.


    CTimer (открыть)

    расширен функционал и принцип работы таймера. алгоритм вычисления может варьироваться и смешиваться посредством побитовых флагов. добавлен метод, позволяющий ставить таймер на паузу.


    новые:
    CApplication (открыть)

    создает референс AST и играет роль автономного callback менеджера.


    CViewAni (открыть)

    унаследован от zCView, но содержит анимированные текстуры или переопределенные материалы 3d объектов.


    CCursor (открыть)

    создает курсор, дублирующий ваш системный. содержит базовые виртуальные методы для переопределения его собственными решениями. приоритет отрисовки максимальный.


    CViewAction (открыть)

    специальная область, повторяющая поведение CViewAni, но созданная по принципу кнопки. содержит группу событий, вызываемые при взаимодействии с курсором:
    mouse_enter // указатель входит в область компонента
    mouse_leave // указатель покидает область компонента
    mouse_hover // указатель неподвижен в области компонента
    mouse_move // указатель перемещается в области компонента
    mouse_down // указатель нажимает на облать компонента
    mouse_up // указатель отжимает от области компонента
    mouse_loop // постоянный цикл



    CSplash (открыть)

    создает на экране окно в отдельном потоке с пользовательской информацией.
    количество объектов неограниченно.


    CLoadScreen (открыть)

    создает пользовательские наборы изображений загрузочных экранов отдельно для каждого из миров.


    CHelpDesc (открыть)

    создает пользовательские наборы подсказок на загрузочных экранах отдельно для каждого из миров.




    Расширения (открыть)

    MARVIN консоль (открыть)

    во время активного диалога, игра ставится на паузу.
    добавлены команды:
    fly - переключает режим полета
    noclip - переключает режим прохождения через стены
    set FOV <value> - устанавливает угол обзора камеры
    set screenshot format <JPEG/PNG/BMP> устанавливает формат сохраняемых скриншотов


    Статус интерфейс (открыть)

    вывод системного времени
    вывод FPS
    вывод общей загрузки памяти
    вывод общей загрузки процессора
    вывод информации использования рабочего набора памяти


    OU (открыть)

    Компиляция файлов OU.bin. также хочу отметить, что AST компилирует библиотеку корректно, выделяя только необходимую информацию и собирает ее в бинарный файл. Spacer и Gothic sourcer справляются с этой задачей очень грязно, от чего размер бинарника возрастает во множество раз из-за огромного количества лишних полей.




    Gothic2 API (открыть)

    интерфейс работы со структурами игры, содержит более 100 классов, а также множество вытекающих из них структур, списков перечислений и тд и тп.


    Engine fixes (открыть)

    1. Прерывание анимации приводит к возвращению использованного предмета в интентарь. [FIXED]
    2. Трансформация выбирает некорректную точку спауна нового воба. [FIXED]
    3. Стрейф не выключается событиями прерывания. [FIXED]
    4. При загрузке мира не выгружаются интерактивные объекты (факел/стрела/болт)
    5. Блокировка поворотов персонажа приводит к стрельбе спиной. [FIXED]
    6. Каст спела производится вдоль константного вектора, приводящему в невозможности нанести повреждение в упор или к ограниченной дистанции полета.
    7. Наносимые повреждения не могут иметь несколько типов, поскольку в результате они складываются.
    8. Любой дальнобой обрабатывает урон как колющий.
    9. Ближнее оружие с колющим уроном наносит смертельный добивающий удар.
    10. Быстрое нажатие на кнопку действия + вперед, будет умножение предметов при взаимодействии с мобси. ??
    11. Заклинание во время нанесения урона наносит повреждение согласно спелу в руке кастера.
    12. Извиваясь из стороны в сторону, преследователь во время атаки будет терять вектор направления. [FIXED]
    13. Быстрая прокрутка мышкой снижает вероятность смертельного падения.
    14. В трансформации, при падении с большой высоты, вернувшись в свой облик перед землей, урон не будет зарегистрирован.
    15. Некоторые смерти заставляют нпс проигрывать последнюю анимацию, а в воде биться в конвульсиях.
    16. Восприятие слуха реагирует только на перемещение вперед и игнорирует стрейф, шаг назад и прыжок. [FIXED]
    17. Падение на живот почти гарантированно влечет смерть с любой высоты.
    18. Урон арбалетов завязан на ловкости.
    19. Двойное выныривание, пузыри изо рта персонажа вне воды, ложное состояние подводного эффекта камеры над уровнем моря.
    20. Проблема с обработкой мышки. Неправильная обработка оси X + заблокированный девайс.
    21. FOV растягивается при изменении оси X, не подстраивается под широкое разрешение экрана. [FIXED]
    22. Трансформация в сущность проводит подмену гг в нулевой координате, куда создается воб, только после этого перемещает его в точку спауна.


    Загрузки:
     

    Вложения:

    Последнее редактирование: 4 май 2017
  2. Beowulf

    Beowulf Участник форума

    Регистрация:
    21 ноя 2010
    Сообщения:
    961
    Благодарности:
    728
    Баллы:
    260
    Пол:
    Мужской
    По поводу предстоящих сборок: часть пунктов выделена зеленым цветом, часть - черным. Что выделение пунктов разными цветами подразумевает?
     
  3. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    зеленые - выполнено. черные - в процессе.
    добавил в шапку пояснение
     
    Beowulf и Myxomop поблагодарили.
  4. alex_draven

    alex_draven
    Модостроитель

    Регистрация:
    13 сен 2007
    Сообщения:
    1.317
    Благодарности:
    1.577
    Баллы:
    315
    Пол:
    Мужской
    Прям так и хочется приписать: "По специальной сниженной цене 9,999!".
    ::)
     
    neromont, Myxomop и hell9999 поблагодарили.
  5. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    пообновлял списки расширений и добавил каплю инфы о предстоящей сборке сдк


    и если ничего не изменится, на днях кину сюда ссылку на тестовый сервер с описанием введений аста. там все подробно расписано как что работает, в том числе по предстоящим модулям и планируемым фишкам. помимо описаний есть примеры реализаций как на дедалусе, так и на плюсах (особенно будет полезно тем, кто уже гоняет на версии 1.1.0.55)
     
    MaGoth, hell9999 и Beowulf поблагодарили.
  6. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    вот и временный сервер. в принципе уже можно ознакомиться с частью материала.
    http://i908159v.bget.ru
     
  7. neromont

    neromont
    Модостроитель

    Регистрация:
    12 мар 2011
    Сообщения:
    291
    Благодарности:
    283
    Баллы:
    220
    Пол:
    Мужской
    Можно было бы перемещать между уровнями еще и NPC, а не только ГГ :)
     
  8. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    не понял, а в чем проблема сделать это скриптами?
     
  9. neromont

    neromont
    Модостроитель

    Регистрация:
    12 мар 2011
    Сообщения:
    291
    Благодарности:
    283
    Баллы:
    220
    Пол:
    Мужской
    Ну так нужно делать копию NPC, по крайней мере у Пираний так. Возможно есть более элегантный способ о котором я не знаю.
     
  10. gggg12345678!

    gggg12345678! Участник форума

    Регистрация:
    6 янв 2016
    Сообщения:
    178
    Благодарности:
    61
    Баллы:
    65
    Пол:
    Мужской
    А можно сделать ведь, чтобы были разные лоад скрины? Как с "Одиссеей" и "Из жизни вора"? Там вроде Икарус использовали.
     
  11. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    да можно в принципе

    там одну строчку переписать
     
    gggg12345678! и neromont поблагодарили.
  12. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    решил тут геймпадом побаловаться, поменял перемещение за счет анимаций на вектор и получил вот такую штуку.


    и да, сейчас в планах доработка управления г2, многое нужно переписать, дополнить и как вариант можно сообразить полную поддержку джойстиков
     
  13. neromont

    neromont
    Модостроитель

    Регистрация:
    12 мар 2011
    Сообщения:
    291
    Благодарности:
    283
    Баллы:
    220
    Пол:
    Мужской
    У меня возник вопрос, после небольшого ознакомления с модификацией "Возвращение 2.0". Такое количество багов - это использование AST, или слишком много моделей используется для игры, или просто кривые скрипты? Или же все вместе?
     
  14. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    в в2 проблема вообще во всем, при этом это все умудряется перемножать друг друга. и движок, мягко говоря, как перекаченный шарик, который вот-вот лопнет, стоит на него как-то не так дунуть. хотя и винить тразага я не собираюсь, так как реализация даже меньшей идеи для любителя - непосильная ноша. многие сдувались и при более простых проектах с табуном по 20 лбов в команде *flowers*

    что до чистых пакетов, то они отлаживаются еще в процессе написания расширений, которые включаются в сборку после 2-3 переписываний *под ноль*. мы не ждем очередного краша, а сразу смотрим что там происходит внутри выполнения процесса и как *оно* отражается на работе движка. цель аст, собственно, и заключается в том, чтобы создать расширитель, имеющий уже встроенный мощный функционал, удобный интерфейс и максимальную стабильность.

    вобщем релизный аст как бы готов и ждет нормальной адаптации плагинов. скоро сами все пощупаете и почувствуете себя на месте тразага ::)
     
    SkaiKa, neromont и hell9999 поблагодарили.
  15. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    вобщем надо пару добровольцев на небольшой тестдрайв лаунчера. кто желает - в личку. надо убедиться в работоспособности и может добавить еще что-нибудь полезное

    Открыть спойлер

    гл окно
    (сплешскрин мода, название, дополнительное название, описание, общие сведенья, проведенное количество времени за конкретным модом)
    1.png
    диспетчер процесса с возможностью быстро убить готику по кнопке Стоп или комбинацией Ctrl + Alt + Q (особено полезно тем, у кого не стартует процесс или зависает без возможности свернуть игру)
    2.png
    набор стандартных конфигов запуска. вроде самое основное вынес
    3.png
     
  16. MaGoth

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    13.561
    Благодарности:
    6.013
    Баллы:
    740
    Пол:
    Мужской
    hell9999 поблагодарил.
  17. neromont

    neromont
    Модостроитель

    Регистрация:
    12 мар 2011
    Сообщения:
    291
    Благодарности:
    283
    Баллы:
    220
    Пол:
    Мужской
    Хотят документацию на английском.
     
  18. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    переводчика надо где-то найти :confused:
     
  19. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.851
    Благодарности:
    553
    Баллы:
    275
    Пол:
    Женский
    Неожиданно то как!
     
  20. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    739
    Благодарности:
    742
    Баллы:
    135
    Пол:
    Мужской
    значит предварительные правки перед релизом библиотеки AST:
    будут перенесены
    Лог менеджер : вывод логов планируется в AST лаунчер
    Триггер таймер
    Скриншоты

    из модуля Extended -> в базовый AST

    предполагается экспорт всех 3х классов для использования с сдк
     
Модераторы: Dimus

Поделиться этой страницей