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

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

Gothic Discord Rich Presence

OsmithREV

Участник форума
Регистрация
17 Мар 2016
Сообщения
117
Благодарности
183
Баллы
230
krkY3Ya.png
Платформа: Gothic I, Gothic II: Night of the Raven
Требования: Union 1.0h и выше
Язык: EN, RU, PL

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

1fBTsKt.gif

Скачать: GitHub
Установка:
Поместите файл GDRP.vdf в папку Gothic 2/Data.
 
Последнее редактирование:

OsmithREV

Участник форума
Регистрация
17 Мар 2016
Сообщения
117
Благодарности
183
Баллы
230
Вышла в релиз версия 1.1

Изменения:
  • Проект выложен в общий доступ. Участие в его развитии крайне приветствуется :)
  • Добавлена поддержка модов и инструментарий для настройки создателям модов (см. описание на GitHub)
  • Добавлена возможность настраивать свои изображения и названия локаций (для модов)
  • Добавлена возможность подключить свое собственное приложение Discord (для модов)
  • Добавлена поддержка Gothic 1 (by Franisz)
  • Добавлена поддержка польского языка (by Franisz)
  • Добавлено отображение текущей главы (by Franisz)
  • Удалено динамическое изменение изображения локации в зависимости от игрового времени
  • Удалено изменение языка на комбинацию клавиш LShift + L
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
О, нормас. Только поясни за параметр 'Lang' какой от него практический смысл
 

OsmithREV

Участник форума
Регистрация
17 Мар 2016
Сообщения
117
Благодарности
183
Баллы
230
О, нормас. Только поясни за параметр 'Lang' какой от него практический смысл
У него приоритет выше, чем у автоопределения. Чтобы можно было поставить вывод инфы на английском имея ОС на русском, например.
 

OsmithREV

Участник форума
Регистрация
17 Мар 2016
Сообщения
117
Благодарности
183
Баллы
230
Вышла в релиз версия 1.1a

Изменения:
  • Добавлена поддержка кодировки Windows 1250 для корректной конвертации польского текста
  • Исправлены некоторые ошибки в переводе (by Franisz)
  • Изменены имя секции и некоторые имена настроек в конфигурационном файле. Подробнее см. в README на GitHub (by Fransiz)
  • Обновлен файл README (by Franisz)
Версия доступна для скачивания по ссылке в шапке.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.197
Благодарности
3.389
Баллы
485
У Steam тоже есть Rich Presence, но наверное без издателя ничего не сделать. Не знаю.
 

Gratt


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


Работайте в юникоде, либо в UTF8 с BOM и не морочьте голову. Внутри самого Union используйте тип wstring (Common::wstring) в качестве Юникод строк и функцию WToA для каста Юникода в Ансю, либо обычный Union string (Common:::string) с функцией ReadFromFile. WToA учитывает текущую кодовую страницу языка, определенного внутри Union (Union.GetSystemLanguage()). А ReadFromFile читает файл с диска или VDF тома, автоматом определяя его кодировку (ANSI, UTF8 с BOM, Unicode LE с BOM).

Опцию Lang уберите, последние сборки Union будут иметь нативную опцию смены языка через ini. Также опция на лету будет подставлять наилучшую кодовую страницу пользователя.

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

OsmithREV

Участник форума
Регистрация
17 Мар 2016
Сообщения
117
Благодарности
183
Баллы
230
Внутри самого Union используйте тип wstring (Common::wstring)
А для wstring какие-нибудь функции форматирования имеются?
За остальное спс, займусь как только смогу.
 

Gratt


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

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
C++:
wstring::Combine( "Hello, %s! Your hex number is %x", userName, number )


Все форматы найдешь в конце файла CString.h
C++:
  enum EStringFormat : byte
  {
    FMT_SINT32  = (char)'i',  // signed long
    FMT_SINT64  = (char)'I',  // signed long long
    FMT_UINT32  = (char)'u',  // unsigned long
    FMT_UINT64  = (char)'U',  // unsigned long long
    FMT_HEX32   = (char)'x',  // 10 to 16 system x32
    FMT_HEX64   = (char)'X',  // 10 to 16 system x64
    FMT_REAL32  = (char)'f',  // float
    FMT_REAL64  = (char)'F',  // double
    FMT_BOOL    = (char)'b',  // boolean
    FMT_CHAR    = (char)'c',  // char
    FMT_BYTE    = (char)'B',  // byte
    FMT_TEXT    = (char)'t',  // char array
    FMT_STRING  = (char)'s',  // string
    FMT_TITLE   = (char)'r',  // running title
    FMT_ZSTRING = (char)'z'   // ansi strings
  };


Там же в начале файла все необходимые кодировки, если вдруг будут нужны. По хорошему конечно не трогать это всё.
C++:
ANSI_CODEPAGE_DEFAULT = CP_GERMAN

ЗЫ там этих методов в Union string выше крыши почти на любые случаи жизни. Поройся чисто по методам и найдешь все что надо.
 

Schmarotzer

Участник форума
Регистрация
30 Дек 2005
Сообщения
39
Благодарности
32
Баллы
175
1625417263892.png
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Это не с кодировкой проблема, а точнее только от части. Информацию о моде содержит ini файл, который может быть только в кодировке ANSI. Соответственно отображение названия мода зависит от кодовой страницы, которую использует система. Для того, чтобы название правильно отображалось в стартере не зависимо от языка системы, используется rtf (rich text format). Поэтому OsmithREV должен написать конвертер rtf в Юникод строку.
 

Парниша с горы

Участник форума
Регистрация
14 Дек 2022
Сообщения
121
Благодарности
41
Баллы
60
Извините, а куда пропал автор мода? А то ошибка с кодировкой всё еще присутствует
 
Сверху Снизу