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

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

AST SDK - Помощь по работе

Тема в разделе "Уpоки AST", создана пользователем Gratt, 12 сен 2016.

  1. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    В комплекте с AST идет API, который необходимо поместить в папку с исходниками плагина.

    Прежде всего, с гордостью заявляю, что это более чем полноценный SDK не только для AST, но и на игру Gothic в целом. Возможности пакета позволяют гибко и комфортно работать с движком, изменяя, добавляя или дополняя его стандартный функционал.

    Что необходимо знать о C/C++ для работы с SDK:

    0. Рекомендуется использовать Visual Studio 2012. бегло пробежаться по синтаксису С/С++ и заострить внимание на вещах, представленных ниже.

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

    Первое, на что я обращаю внимание, в заголовочных файлах рекомендуется использовать только статические данные (static, const, extern), либо их прототипы (объявление без кода реализации). В противном случае, если производить вызов заголовочника из разных файлов исходного кода (.cpp), выскочит ошибка о переопределении данных.

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


    2. Далее следует понять что такое указатели. об этом тоже можно почитаете в интернете. для справки поясню:
    Открыть спойлер

    Указатель - это ссылка на объект в памяти. наглядно показываю задачкой как оно работает:
    int A; // Переменная типа int
    int* B = &A; // Указатель на переменную типа int
    int** C = &B; // Указатель на указатель на переменную типа int
    A = 10; // присваиваем A значение 10
    // Рассмотрим результаты вывода задачи

    Print(A); // Результат = 10
    Print(*B); // Результат = 10
    Print(**C); // Результат = 10
    Print(&A); // Результат = адрес расположения элемента A
    Print(B); // Результат = адрес расположения элемента A
    Print(*C); // Результат = адрес расположения элемента A
    Print(&B); // Результат = адрес расположения указателя B
    Print(C); // Результат = адрес расположения указателя B
    Print(&C); // Результат = адрес расположения указателя C
    A, к примеру, имеет адрес 0x00000700. (& (амперсанд) получает адрес объекта в памяти)
    B ссылается на адрес 0x00000700, в котором находится объект A.
    соответственно, C ссылается на адрес B, по которому лежит адрес A.


    3. Классы. все построено на классах и структурах. частично скриптеры с ними уже знакомы, так что особых проблем тут не возникнет.
    Открыть спойлер

    основные понятия, которые следует изучить для написания своих нормальных классов:
    1. конструкторы и деструкторы.
    2. уровни доступности: public, private, protected...
    3. статический метод(функция)/свойство(переменная)
    4. виртуальный метод. отличие от обычного. абстрактный класс. (по желанию)
    5. соответственно почитать о наследовании (по желанию)

    4. От себя советую изучить макросы #define. очень простая и удобная штука

    В остальном многие понятия вам уже знакомы, если приходилось копаться в скриптах (дедал по синтаксису нечто между Паскалем и Си)

    -------

    Определить путь выходного файла можно заранее определить в системную папку игры, пройдя в меню Проект->Свойства->Общие->Выходной каталог & Наименование. (хоткей компиляции F7 на 2012 студии)

    -------

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

    Вложения:

    • Undecorated.txt
      Размер файла:
      1,2 МБ
      Просмотров:
      297
    Последнее редактирование: 29 сен 2016
  2. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    Скачал архив "AST+SDK_RELEASE_BUILD_002.zip", распаковал другой архив "AST_SDK_Build_001-002.zip" в отдельную папку. Далее попробовал запустить проект на Visual Studio 2012 Express Edition, но в ходе компиляции "MyPlugin.dll" происходит ошибка:
    Код:
    Ошибка    1    error C1033: невозможно открыть базу данных программы ""    D:\SDK\plugin_example\stdafx.cpp    1    1    plugin_example
    С чем это может быть связано?

    Второй вопрос по механике запуска. Я так понимаю, что "Gothic Starter" аттачит либу "AST.dll" к процессу "Gothic II.exe", а либа в свою очередь подключает плагин, к примеру "MyPlugin.dll"?
     
  3. Gratt

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

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

    да. суется в пространство готы и дальше открывает плагин
     
  4. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    Нажал: Построение->Перестроить решение. Та же самая ошибка.
    Система Win7 x64.
     
  5. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    stdafx.cpp есть в проекте?
     
  6. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    Есть.
     
  7. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    запакуй и дай проект
     
  8. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    на.
     

    Вложения:

    • SDK.RAR
      Размер файла:
      10,8 МБ
      Просмотров:
      75
  9. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    у меня все нормально. только когда ставишь сдк, на него надо накатить тулзы аста которые идут вместе с dll..
     

    Вложения:

    • SDK.rar
      Размер файла:
      13,1 МБ
      Просмотров:
      103
  10. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    А ты сам какую версию используешь, Express или Professional?
    У меня ещё установлена "Microsoft Visual C++ 2008 Express Edition", может из за неё косячит.:confused:

    Про ошибку известно следующее:
    Код:
    C1032 "Невозможно открыть файл, содержащий объектный листинг
    'filename'".
    Имеет силу одно из следующих утверждений, касающихся имени фай-
    ла или имени маршрута:
    1.Данное имя не верно.
    2.Файл с данным именем не может быть открыт из-за нехватки
    памяти.
    3.Уже существует файл с данным именем и атрибутом "только-чте-
    ние".
    C1033 "Невозможно открыть выходной файл на языке ассемблер
    'filename'".
    Одно из условий, рассмотренных в описании ошибки с кодом C1032,
    привело к невозможности открыть данный файл.
    
     
  11. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    ультимейт
     
  12. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    Попробую запустить на Ultimate, где-то как раз писали, что ошибка связана с версией.
    На "ультимейт" либа скомпоновалась успешно!
     
    Последнее редактирование: 8 дек 2016
  13. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    да, вероятнее всего
     
    Jr13San поблагодарил.
  14. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    Запустил тест.
    AST.dll от сюда: "AST_Release ver. 1.1.0.55.7z" работает, а вот от сюда: "AST_RELEASE_Build_002.zip" - не работает, выдаёт ошибку(см. аттач репорт).

    Если всё же взять рабочий вариант AST.dll и запустить Готику, то можно наблюдать следующее:
    1) Изменена камера персонажа или FOV камеры(см. аттач).

    2) Не экипируются вещи, хотя взаимодействие с ними происходит, также выводится информация, если не хватает силы или ловкости. Здесь что-то не так.

    3) Не подключается плагин, хотя и прописан в ASTStart.ini, как:
    Код:
    [PLUGINS]
    PluginList=MyPlugin
    и естественно присутствует в папке System.
    Я так понял, на экран должно выводится сообщение "Hello, Innos!". Но его нет.

    Доп. информация:
    Заголовок окна меняется с приставкой & AST :: version... и т.д.
     

    Вложения:

    • Gothic.RPT.txt
      Размер файла:
      8,7 КБ
      Просмотров:
      39
    • AST_Cam.jpg
      AST_Cam.jpg
      Размер файла:
      783 КБ
      Просмотров:
      137
    Последнее редактирование: 9 дек 2016
  15. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    тут архитектура вообще другая целиком и полностью. и функционал отличается и плагинов нет

    подробно опиши работает ли у тебя 002 без плагина.
    в каком порядке производилась установка плагина и что в него добавлялось
    стоят ли другие расширители помимо аст
    важно чтобы exe был репорт версией
     
  16. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    Вот пока без плагина:
    Да, установлена репорт-версия. Имеется приставка "(fix)".
    Стоят. Пробовал с "Икарусом" и без него(другие скомпилированные скрипты) - одинаково не работало.

    Сейчас так. Если запускать "AST.exe" только с библиотекой AST.dll из "AST_RELEASE_Build_002.zip", то происходит вылет с ошибкой, такой же как писал выше.
    А если запустить через новый(с зелёным значком) стартер "ASTStart.ini", также без плагина, только с поддержкой AST.dll из "AST_RELEASE_Build_002.zip", то Готика запустится (странно, раньше не запускалась). Но замечены фризы каждую секунду на любом моде. FPS = 240 и выше. Это пока текущая проблема. Попробую ограничить fps до 60, может поможет.
    С экипировкой и с камерой проблемы пропали.
     
  17. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    значит возникнут. повторяю всем и каждому - можно использовать только ОДИН любой расширитель и ни в коем случае не смешивать их.

    новый только вот этот. все остальные старые как мир
    http://worldofplayers.ru/threads/39340/

    а вот тут мой косяк. я все забываю фикс выкинуть..
    глянь эту...
     

    Вложения:

    • AST.rar
      Размер файла:
      34,7 КБ
      Просмотров:
      96
  18. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    Ещё требуется файлы: "IT_DEFBOWQUIVER.ASC", "IT_DEFBOWQUIVER.ASC" (колчаны?), иначе стрелковым оружием пользоваться не возможно, каждый раз читая это сообщение. Причём ГГ никак не может остановиться стрелять.*around the head*
    Норм, фризы пропали.
     
  19. Gratt

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

    Регистрация:
    14 ноя 2014
    Сообщения:
    963
    Благодарности:
    1.040
    Баллы:
    175
    Пол:
    Мужской
    тут есть рабочие колчаны
    http://worldofplayers.ru/threads/39266/page-2

    не ко мне вопросы.. я механику не трогал
     
  20. Jr13San

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

    Регистрация:
    1 апр 2010
    Сообщения:
    452
    Благодарности:
    126
    Баллы:
    210
    Пол:
    Мужской
    У меня проблемы на семёрке с этими стартерами из за rundll.exe. На прямую запускать я их не могу. Работают только с СП. А так - приходится запускать моды с GothicStarter_ast_mod через bat'ник.

    Скопировал недостающие модели колчанов. Теперь оружие стреляет как и раньше.

    Ещё вопросы:
    1) При подключении AST.dll должно ли включаться свободное прицеливание у луков или арбалетов или нет?
    2) Возможно ли отключить колчаны?
    3) Можно ли подключать только плагины без AST.dll?
     
    Последнее редактирование: 9 дек 2016

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