SyDr 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				1) Переход пофикшен. 
2) Только .ico - только хардкор. 
3) Пробелы должны работать. 
4) Версии модов нужны только для обновления. Если выставлять напоказ, надо всё же договорится, какой формат стандартный и как сравнивать какой мод новее по версии. 
5) Тип мода нужен и используется только для определения стандартного поведния менеджера при отсутствии информации в секции Compatibility. Это название не есть суть мода. Только совместимость. Есть два класса: Feature (совместимы с другими такими же) и Conversion (ни с чем не совместимо). Плюс к ним Interface, который со всеми совместим. Можно их обозначить, как 0, -1 и 1. 
6) Добавил проверку на существовании иконки (если файл битый или левый - такое всё равно будет происходить).
			 
			
			
			
		 |  
	 
 | 
	| 01.07.2013 23:46 | 
	
		
	 | 
	
		
		SyDr 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				Если выставить Conversion то да, но... 
Если выставить Feature -> понадобится прописывать во всех Conversion, которые совместимы. 
Если выставить Interface -> понадобится прописывать во всех модах, которые несовместимы. 
 
Я вообще предполагаю, что Conversion будет выставлено у двух-трёх модов. Типа Phoenix, MoP (^_^), HoTL. Ну и авторские карты сюда же. 
Ну и поскольку с этим делом слишком много уж вопросов получится у всех. 
Имя поля ModType -> CompatibilityLayer 
Значения -> Default, None, All 
Default (был Feature) - ничего интересного. 
None - ни с чем не совместимо. Все совместимости прописываем через секцию. 
All - совместимо со всеми. Приоритет выше, чем у None. Все несовместимости прописываем через секцию. 
Отношение симметрично. Если мод A несовместим с Б, то и Б несовместим с А. С другой стороны, можно сделать, что А совместим с Б, а Б с А - нет. 
 
Поэтому, для стандартных модов: 
WoG -> All 
Yona -> All 
SSS -> All 
FBA -> All 
При этом в секцию Compatibility ничего писать не надо. 
Добавляем к примеру ещё пару модов: 
Dragon Slaughter -> None (с WoG всё равно совместим при таком подходе). Можно выключить Yona, чтоб уж совсем как задумано было. 
King in Yellow -> аналогично. 
Standart Maps (позволяет мне легко ориентироваться в авторских картах) - All. Прописываем, что несовместим с TDS и KiY. 
New Interface Mod -> All 
Turbo battles -> All. Несовместим с FBA 
Portraits Manager -> All. Несовместим с Phoenix. 
New Upgrades -> Default - в этом списке будет несовместим с TDS и KiY. 
Phoenix -> None - будет несовместим с TDS, KiY и PM. 
и т.д. Здесь пришлось прописать всего 3-4 мода в секцию Compatibility. Это ну никак не n2
			 
			
			
			
		 |  
	 
 | 
	| 02.07.2013 09:20 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 02.07.2013 13:35 | 
	
		
	 | 
	
		
		SyDr 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				Mod Manager_130702.zip
Проверь ещё раз пути к иконкам с пробелами. 
Валидные значения для CompatibilityLayer - Default и None. С учётом реализации любое другое значение будет расценено, как All.
			  
			
			
			
		 |  
	 
 | 
	| 02.07.2013 15:47 | 
	
		
	 | 
	
		
		hippocamus 
 
 
		
		
		
			
			
			
 
 
			
Posts: 517 
	
		
	 | 
	
		
			
			 
			
				А почему Вогу не выставить Interface? Он же обязателен!
			 
			
			
  
-= подпись Гиппокамуса =-
			
		 |  
	 
 | 
	| 02.07.2013 23:27 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 02.07.2013 23:53 | 
	
		
	 | 
	
		
		kswdiy 
 
 
		
		
		
			
			
			 
			
Posts: 33 
	
		
	 | 
	
		
			
			 
			
				 (01.07.2013 19:10)SyDr Wrote:  [info.<Язык>] 
Name = Локализованное имя. Можно не указывать. 
Description = Имя файла с локализованным описанием. Можно не указывать. 
 
[Compatibility] 
<Имя мода 1> = 1  ; совместимо с этим модом 
<Имя мода 2> = -1 ; несовместимо с этим модом 
 
 
Таким образом, необходимый минимум - заполненное поле версия мода. 
Пример файла с описанием: 
[info] 
Name = Standard maps 
Description = info.txt 
Author =  
Link = http://wforum.heroes35.net/ 
Icon =  
Version = 1 
ModType = Interface 
 
[info.Русский] 
Name = Стандартные карты (на английском) 
Description = info_ru.txt 
 
[Compatibility] 
Russian Fonts = 1 
King in Yellow = -1 
New Interface Mod = 0 
Dragon Slaugther = -1 
Good! 
But you need fix Create new configurations to mod_info.ini.
 
[info] 
Icon =  
Version =  
ModType = 
 
[Compatibility] 
...
 
At last,can you tell me how to use the icon option?
 
New Mod manger Chinese LNG 13_07_02:
 https://www.box.com/s/jfa8979p14dmws7jabk3
			 
			
			
			
		 |  
	 
 | 
	| 03.07.2013 06:28 | 
	
		
	 | 
	
		
		SyDr 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				Mod Manager_130703.7z
[info] 
Icon = Path_to_icon.ico (Base folder is <HoMM3>\Mods\<Mod dir>\) 
Index is not supported (at least now). MM will always use 0/
			  
			
			
			
		 |  
	 
 | 
	| 03.07.2013 17:49 | 
	
		
	 | 
	
		
		WWWoWaNuS 
 
 
		
		
		
			
			
			 
			
Posts: 138 
	
		
	 | 
	
		
			
			 
			
				Обновил MM до   (03.07.2013 17:49)SyDr Wrote:  Mod Manager_130703 
 Появилась меню быстрого выбора набора WoG-опций. Ура.   
Каплю дёгтя: по сравнению с  Mod Manager_TV005 (2).zip (версии между ними не тестил, увы..) у меня ощутимо замедлилось время после переключения пресета перед повторной обработкой (проверкой?) окна MM.  Задержка составляет пару секунд (на старой версии было меньше), если в это время вручную сменить выделение в списке модов, можно словить "цикл" выбора.
 пример
			 
			
			
			
		 |  
	 
 | 
	| 04.07.2013 03:57 | 
	
		
	 | 
	
		
		Bes 
 
 
		
		
		
			
			
			
 
 
			
Posts: 5453 
	
		
	 | 
	
		
			
			 
			
				очень неудобно стало следующее... 
1) если выбрать мод и сделать с ним что-нить (сдвинуть вниз, или отключить), то "взгляд" следует за этим модом... что в итоге крайне неудобно когда это дело вынуждает вновь тянут бегунок и выкручивать на самый верх до пункта "Включенные"... а ведь я просто хотел опустить мод в списке активных, не более... 
 
можно как-то сделать обновление списка модов без такой вот скроллинг "бяки"? так сказать оставить взгляд там где он изначально был до действия. 
 
К стати, это же актуально и для действия "отключить"... зачем мне видеть куда в итоге встанет мод по алфавиту в списке отключенных модов? ну нажал я отключить мод, и пусть он себе уйдёт в "низы", следовать за ним "взгляду" вообще не логично 
 
2) каждый раз, когда окно менеджера вновь становится активным, происходит обновление списка модов. 
Зачем? очень напрягает... Да, я понимаю что это сделано на случай, вдруг я только что распаковал новый мод и он должен в итоге отобразится в списке после возврата в окно менеджера... НО! процент такой нужды куда меньше чем холостое сворачивание и разворачивание менеджера. 
Предлагаю на сей счёт добавить кнопку "Обновить список модов"... будет куда лучше, если я добавлю мод и зная что я это сделал а мод ещё не отобразился - нажму "Обновить"
			 
			
			
			
		 |  
	 
 | 
	| 04.07.2013 07:20 | 
	
		
	 | 
	
		
		SyDr 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				Mod Manager_130704.zip
WWWoWaNuS, немного улучшил загрузку карты совместимости модов (выключенные теперь вообще не участвуют). Если будет мало, оптимизирую ещё пару моментов.
 ИО Bes-а,  
1) Сейчас ММ пытается следить за активным модом. С выключением это действительно неудобно. Но ведь по списку чаще всего двигается какой-то определённый мод в определённое место. С вас список действий/список активности после выполнения действия: 
Изменение приоритета мода. 
Отключение мода. 
Включение мода. 
Удаление мода.
 
2) Я пожалуй лучше сделаю, чтобы окно обновялось только при изменениях. Со списком/приоритетами будет легко, а вот с данными о конкретных модах тяжелее (имя, иконка, совместимость и т.д.). Если я найду, как нормально следить, изменился ли файл, всё будет нормально.
			  
			
			
			
		 |  
	 
 | 
	| 04.07.2013 09:34 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
			
			 
			
				Угу, ибо так удобно, меняешь файл настройки и сразу же видишь обновление без перезапуска. Следить можно по дате изменения файла. 
SyDr, будем делать скачивание/обновление модов с выбранного репозитория? Репозиторий - url папки с информацией, например  http://bers.heroes35.net/mods/. А в нём файл mods.ini:
 
Code: 
 [] 
Каноническое имя мода (имя папки) = Местное имя файла | Версия 
...
  
Пример:
 
Code: 
 [] 
Phoenix = Phoenix Mod 3.63.exe | 3.63
  
В имени файла на сервере нужно заменить как минимум пробел на %20 или вызвать аналог UrlEncode. Полная ссылка будет [Репозиторий с проверкой косой черты в конце][Локальное имя файла, закодированное]
 
Ещё хотел спросить, sfx-rar моды менеджер берёт (распаковывает?). Что насчёт модов с другими расширениями? .rar, .wog и т.д. Наконец, некоторые моды заменяют файлы в Help и Tools. Их структура включает Mods, Help, Tools, etc. Их менеджер нормально обрабатывает?
			  
			
			
  
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов 
Поддержать проект 
			
		 |  
	 
 | 
	| 04.07.2013 14:16 | 
	
		
	 | 
	
		
		SyDr 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				По дате изменения... Хм... Посмотрим... 
 
По поводу обновления вообще были мысли сделать в духе: 
1) Тип проверки наличия обновления (нет, автоматически - файл определённой струкутуры по определённому адресу), вручную - открывает ссылку в бразуере). 
2) Тип обновления (нет, автоматически и вручную. 
Это несколько гибче, чем централизованный репозиторий, но и следить за порядком в таком случае тяжелее. 
 
Из форматов ест все те, что есть 7-zip: это и rar'ы, и zip'ы, и даже rarjpeg'и. Расширение файла не влияет ни на что, кроме того, что фильтром по умолчанию стоит только .emp 
Неккоректно ММ будет обрабатывать архивы, в которых в Mods\ больше одного каталога (он будет считать это одним модом, но распаковывать будет полностью). 
Остальные каталоги внутри архива также будут распакованы, после чего ММ навсегда забудет о них (при удалении мода будет удаляться только каталог с модом). 
 
Ну и наконец, с соглашением о нумерации версий модов: я посовещался сам с собой и решил, что будет два поля: 
Version = Value ; в любом виде, в котором только хочется. Именно это значение и будет показываться пользователю в качестве версии (если будет показываться). 
Version Date = YYYYMMDDhhmmss ; т.е. 20130704154759, при этом конечные цифры можно будет опускать 20130704 = 20130704000000
			 
			
			
			
		 |  
	 
 | 
	| 04.07.2013 17:48 | 
	
		
	 | 
	
		
		Bes 
 
 
		
		
		
			
			
			
 
 
			
Posts: 5453 
	
		
	 | 
	
		
			
			 
			
				 (04.07.2013 09:34)SyDr Wrote:  ИО Bes-а,  
1) Сейчас ММ пытается следить за активным модом. С выключением это действительно неудобно. Но ведь по списку чаще всего двигается какой-то определённый мод в определённое место. С вас список действий/список активности после выполнения действия: 
Изменение приоритета мода. 
Отключение мода. 
Включение мода. 
Удаление мода. 
в списке чаще отключается некий мод, и куда он там поместится совершенно неинтересно, а по факту это навязчиво показывается человеку. 
С включением мода прыжок взгляда вполне оправдан - сразу смотришь как он встал по списку активных - тут вопросов нет. 
удаление мода - не пользовался ни разу (предпочитаю это делать, при нужде, в файловом менеджере) 
Изменение приоритета: опускаю/поднимаю на две позиции мод, перепроверяю что в итоге выставлено - запуск игры
 
классич. порядок работы - открыл менеджер, посмотрел что там настроено, отключил несколько модов, т.к. только что установил новый мод sfx-архивом, запустил игру
			  
			
			
			
		 |  
	 
 | 
	| 04.07.2013 18:07 | 
	
		
	 |