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

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

Gothic ½ Словники и словари для игр и их модов..

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Есть некоторые мысли по переопределению конструктора zSTRING, примерно так:

Находим ключ условный var string str = "$string_01, а далее "дефолтный текст", где после $ проверяется имя инстанции из внешнего словаря, а если не находит, то используется текст по умолчанию.

То есть смысл в том, чтобы каждой текстовой инстанции присваивать еще внешнюю инстанцию. Для этого
нужно будет замутить парсер для автоматической конвертации строк под словарь при наличии исходного кода модов.
Далее, касаемо самого словаря, если делать его с возможностью записи в него сразу всех поддерживаемых языков, то можно автоматически выбирать язык исходя из настроек языка Винды для текущего юзера, либо из явного указания языка в ini-файле Юниона.
Фактически, штатный пользователь по умолчанию должен будет видеть свой язык в корректном виде, вместо "кракозябр" и проблем с настройками. Естественно, со шрифтами проблемы тоже порешаем.

Кто что думает по этому поводу, может у кого какие идеи и мысли будут на этот счет, а может и другие какие предложения для этого ?! ::)
 

Gratt


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

например имеем в скрипте строку:
bau_lex_1006.d
HTML:
name = "$s_nameLex1006 Лекс";
после символа $ идет автоматическое считывание некоторого глобального кода "s_nameLex1006", который упорядочено хранится во внешней таблице. если символ не найден, то по умолчанию будет прочитана подстрока "Лекс".
-------
при этом сами словари могут быть помещены в vdf тома или даже разбиты на несколько файлов с текстами разных групп (диалоги, наименования, константы).
-------
формат словаря может быть разным. например хранение нескольких языков в одном файле с условным синтаксисом:
HTML:
[s_nameLex1006]
rus: Лекс
eng: Lex
Pol: Lęx
где исходная подстрока имеет юникод представление и при чтении движком преобразуется в родной ansi
-------
выбор языка определяется исходя из текущего системного. либо из того, что явно указывается в ini файле юниона:
Union.ini
HTML:
[GLOSSARY]
DefaultLang = Eng
-------
чтобы модер вручную не переводил все свои писульки в словарный формат, не проблема написать парсер, который сам вставит в текст необходимые маркеры и сгенерирует словарь.
 
Сверху Снизу