igrik 
 
 
		
		
		
			
			
			
 
 
			
Posts: 2821 
	
		
	 | 
	
		
 | 
	| 17.09.2020 17:26 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
			
			 
			
				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: 2821 
	
		
	 | 
	
		
			
			 
			
				 (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: 16788 
	
		
	 | 
	
		
 | 
	| 17.09.2020 21:35 | 
	
		
	 | 
	
		
		Bes 
 
 
		
		
		
			
			
			
 
 
			
Posts: 5453 
	
		
	 | 
	
		
			
			 
			
				Berserker, да, я это и имел ввиду    но не привык пока к этим json'ам, всё оперирую старыми подходами
 igrik, спасибо!
			  
			
			
			
		 |  
	 
 | 
	| 18.09.2020 03:43 | 
	
		
	 | 
	
		
		Archer30 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 1192 
	
		
	 | 
	
		
 | 
	| 18.09.2020 08:10 | 
	
		
	 | 
	
		
		igrik 
 
 
		
		
		
			
			
			
 
 
			
Posts: 2821 
	
		
	 | 
	
		
			
			 
			
				 (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: 1192 
	
		
	 | 
	
		
 | 
	| 18.09.2020 13:12 | 
	
		
	 | 
	
		
		Guru105 
 
 
		
		
		
			
			
			 
			
Posts: 835 
	
		
	 | 
	
		
			
			 
			
				В русской версии Героев 3 от GOG появилось полезное нововведение. 
В crtraits.txt добавлено поле "Plural2", куда вписаны имена монстров во множественном числе в родительном падеже:
  
И описание существ на карте теперь переводятся корректно, то есть "орда копейщиков", а не "орда Копейщики", как было раньше:
  
Судя по всему, к exe игры был применен некий патч или плагин. 
С HD-модом эта фича пока не работает, так как HD-мод использует свой exe. 
Вот у меня и возник вопрос, сложно ли такое реализовать для Эры?
			  
			
			
			
		 |  
	 
 | 
	| 18.09.2020 21:24 | 
	
		
	 | 
	
		
		SergOz 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1361 
	
		
	 | 
	
		
			
			 
			
				Можно просто поменять информационную строку. Например: 
 
 Копейщики:  группа (10-19) 
   
 Гарпии:   орда (50-99) 
   
 Привидения:  легионы (1000+)
			 
			
			
  
Карта-мод "Война на Холсте"
			
		 |  
	 
 | 
	| 18.09.2020 23:16 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 18.09.2020 23:31 | 
	
		
	 | 
	
		
		Guru105 
 
 
		
		
		
			
			
			 
			
Posts: 835 
	
		
	 | 
	
		
 | 
	| 19.09.2020 01:34 | 
	
		
	 | 
	
		
		igrik 
 
 
		
		
		
			
			
			
 
 
			
Posts: 2821 
	
		
	 | 
	
		
			
			 
			
				 (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 | 
	
		
	 |