igrik
Posts: 2819
|
|
17.09.2020 17:26 |
|
Berserker
Posts: 16657
|
igrik, я подожду постоянно решения, ибо нет ничего временного.
Вот функция tr с исправленным багом:
Code:
/**
* Returns translation for given complex key ('xxx.yyy.zzz') with substituted parameters.
* Pass vector of (parameter name, parameter value) pairs to substitute named parameters.
* Example: Mod\Lang\*.json file: { "eqs": { "greeting": "Hello, @name@" } }
* Example: ShowMessage(tr("eqs.greeting", { "name", "igrik" }).c_str());
*
* @param key Key to get translation for.
* @param params Vector of (parameter name, parameter value pairs).
* @return Translation string.
*/
std::string tr (const char *key, const std::vector<std::string> params = {}) {
const int MAX_PARAMS = 64;
const char* _params[MAX_PARAMS];
int numParams = params.size() <= MAX_PARAMS ? params.size() : MAX_PARAMS;
for (int i = 0; i < numParams; i++) {
_params[i] = params[i].c_str();
}
char* buf = _tr(key, _params, numParams - 1);
std::string result = buf;
MemFree(buf);
return result;
}
Можно её, конечно, порезать до:
Code:
std::string tr (const char *key) {
char* buf = _tr(key, NULL, -1);
std::string result = buf;
MemFree(buf);
return result;
}
Не будет возможности передать параметр вида @name@, @age@ и т.д.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
17.09.2020 17:52 |
|
igrik
Posts: 2819
|
(17.09.2020 17:52)Berserker Wrote: igrik, я подожду постоянно решения, ибо нет ничего временного.
Обсуждали, что это же временная мера
Готово. Отправил по той же ссылке.
wnd.json
Code:
{
"wnd": {
"fonts": {
"big_font": "bigfont2.fnt",
"med_font": "medfont2.fnt",
"small_font": "smalfont.fnt"
},
"dlg_wog_options": {
"intro_font": "bigfont2.fnt",
"bttn_name": "{WoG Options}",
},
"dlg_crexpo": {
"line0": "STACK EXPERIENCE DETAILS",
"line1": "Creature Type:",
"line2": "Experience Rank:",
"line3": "Experience Points:",
"line4": "Experience Points to Next Rank:",
"line5": "Maximum Experience per Battle:",
"line6": "Number of Creatures in stack:",
"line7": "Max new recruits without losing Rank:",
"line8": "Experience Multiplier:",
"line9": "Upgrade Multiplier:",
"line10": "Experience after Rank 10:",
"line11": "Maximum New Recruits to remain at Rank 10:",
},
"dlg_commander": {
"bttn_open_hint": "Open Commander screen",
"bttn_exit_hint": "Exit Commander screen",
"bttn_lvlup_hint": "Click to increase selected skill.",
"bttn_dismiss_rmc": "Click to dismiss this Commander.",
},
"combat": {
"finish_question": "Finish with Quick Combat?",
"show_killed": ", kills: %s",
},
}
}
game bug fixes extended.dll || My Plugins || My GitHub
|
|
17.09.2020 18:42 |
|
Berserker
Posts: 16657
|
|
17.09.2020 21:35 |
|
Bes
Posts: 5422
|
Berserker, да, я это и имел ввиду но не привык пока к этим json'ам, всё оперирую старыми подходами
igrik, спасибо!
|
|
18.09.2020 03:43 |
|
Archer30
Posts: 1175
|
|
18.09.2020 08:10 |
|
igrik
Posts: 2819
|
(18.09.2020 08:10)Archer30 Wrote: I just have one stupid question - Has the WoG Naitve Dialogs Plugin with json support been updated yet? Or should I wait?
Да, немного подождать.
Сегодня произошло еще одно обновление плагина: теперь все строки берутся из wnd.json файла, а файл wogndlg.txt больше не нужен.
game bug fixes extended.dll || My Plugins || My GitHub
|
|
18.09.2020 12:21 |
|
Archer30
Posts: 1175
|
|
18.09.2020 13:12 |
|
wessonsm
Posts: 792
|
В русской версии Героев 3 от GOG появилось полезное нововведение.
В crtraits.txt добавлено поле "Plural2", куда вписаны имена монстров во множественном числе в родительном падеже:
И описание существ на карте теперь переводятся корректно, то есть "орда копейщиков", а не "орда Копейщики", как было раньше:
Судя по всему, к exe игры был применен некий патч или плагин.
С HD-модом эта фича пока не работает, так как HD-мод использует свой exe.
Вот у меня и возник вопрос, сложно ли такое реализовать для Эры?
|
|
18.09.2020 21:24 |
|
SergOz
Posts: 1315
|
Можно просто поменять информационную строку. Например:
Копейщики: группа (10-19)
Гарпии: орда (50-99)
Привидения: легионы (1000+)
Карта-мод "Война на Холсте"
|
|
18.09.2020 23:16 |
|
Berserker
Posts: 16657
|
|
18.09.2020 23:31 |
|
wessonsm
Posts: 792
|
|
19.09.2020 01:34 |
|
igrik
Posts: 2819
|
(18.09.2020 21:24)wessonsm Wrote: Судя по всему, к exe игры был применен некий патч или плагин.
С HD-модом эта фича пока не работает, так как HD-мод использует свой exe.
Вот у меня и возник вопрос, сложно ли такое реализовать для Эры?
Нет, нельзя.
Сама по себе, оригинальная структура монстра не имеет места для третьего поля с названиями.
Code:
_int_ town;
_int_ level;
_char_* sound_name;
_char_* def_name;
_int_ flags;
_char_* name_single;
_char_* name_plural;
_char_* specification_description;
_int_ cost_wood;
_int_ cost_mercury;
_int_ cost_ore;
_int_ cost_sulfur;
_int_ cost_crystal;
_int_ cost_jems;
_int_ cost_gold;
_int_ fight_value;
_int_ AI_value;
_int_ growth;
_int_ horde_growth;
_int_ hit_points;
_int_ speed;
_int_ attack;
_int_ defence;
_int_ damage_min;
_int_ damage_max;
_int_ shots;
_int_ spells_count;
_int_ advmap_low;
_int_ advmap_high;
Поэтому, то что если что-то и хотели в русской версии Героев 3 от GOG, без перекомпиляции оригинального кода - сторонними методами, просто не могло быть реализовано.
game bug fixes extended.dll || My Plugins || My GitHub
|
|
19.09.2020 04:01 |
|