Wake of Gods Forum | Форум Во Имя Богов

Full Version: Era II Mod Manager
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Code:
PROGRAM InstallMod;
{
DESCRIPTION:  Replaces strings in the specified file
AUTHOR:       Alexander Shostak (aka Berserker aka EtherniDee aka BerSoft)
}

USES SysUtils, Utils, Lists, Files, DlgMes, CmdApp;

CONST
  MODS_DIR                  = 'Mods';
  DEFAULT_MODLIST_FILEPATH  = MODS_DIR + '\list.txt';


PROCEDURE Install (CONST NewModName: STRING);
VAR
{O} ModList:      Lists.TStringList;
{O} FileList:     Lists.TStringList;
    ModListText:  STRING;
    ModName:      STRING;
    ModInd:       INTEGER;
    i:            INTEGER;
  
BEGIN
  FileList  :=  Lists.NewSimpleStrList;
  ModList   :=  Lists.NewSimpleStrList;
  // * * * * * //
  ModList.CaseInsensitive :=  TRUE;
  Files.ReadFileContents(DEFAULT_MODLIST_FILEPATH, ModListText);
  FileList.LoadFromText(ModListText, #13#10);
  FileList.Add(NewModName);
  
  FOR i := FileList.Count - 1 DOWNTO 0 DO BEGIN
    ModName :=
      SysUtils.ExcludeTrailingBackslash(
      SysUtils.ExtractFileName(
      SysUtils.Trim(FileList[i])
      ));

    IF (ModName <> '') AND NOT ModList.Find(ModName, ModInd) THEN BEGIN
      ModList.Insert(ModName, 0);
    END; // .IF
  END; // .FOR
  
  Files.WriteFileContents(ModList.ToText(#13#10), DEFAULT_MODLIST_FILEPATH);
  // * * * * * //
  SysUtils.FreeAndNil(FileList);
  SysUtils.FreeAndNil(ModList);
END; // .PROCEDURE Install

FUNCTION Run: BOOLEAN;
VAR
  Error:  STRING;

BEGIN
  RESULT  :=  TRUE;
  
  IF CmdApp.ArgsList.Count = 0 THEN BEGIN
    DlgMes.Msg('Program.exe [ModPath]');
  END // .IF
  ELSE BEGIN
    RESULT  :=  CmdApp.ArgsList.Count = 1;
    
    IF NOT RESULT THEN BEGIN
      Error :=  'Invalid number of parameters. Run program without parameters for help.';
    END // .IF
    ELSE BEGIN
      Install(CmdApp.ArgsList[0]);
    END; // .ELSE
  END; // .ELSE
  
  IF NOT RESULT THEN BEGIN
    DlgMes.MsgError(Error);
  END; // .IF
END; // .FUNCTION Run

BEGIN
  Run;
END.
По той же ссылке небольшое, но важное обновление:
Mod Manager will no longer use "installmod.exe" when installing mod.
If you rename "modsmann.exe" to "installmod.exe" and replace original "installmod.exe" - MM will work like this utility but with awareness of Priority system*.
MM will launch with same elevation level as parent application

*There is following differences between MM and original "installmod":
1) MM will use self containing directory as base (<Game Dir>\Tools\..\Mods), not a working dir (place a empty file "im_use_work_dir" to restore old behavior).
2) MM does not require administrator privileges on machines with enabled UAC.
Кто-нибудь тестил использование ММ в качестве installmod?
---------------------------
AutoIt Error
---------------------------
Line 10982 (File "D:\Soft\Games\Heroes3\Era\Tools\installmod.exe"):


Error: Subscript used on non-accessible variable.
---------------------------
ОК
---------------------------

WoG
Yona
Secondary Skills Scrolling
Fast Battle Animation
#NewYona
WoG Rus
#Vallex Portraits
#New Music Pack
#WoG Revised
#Morn battlefields
#Big Spellbook
Phoenix
#Battle Heroes
#H2 Succession Wars
#Another heroes
#Tew IV
#WoG Chinese
#ERA scripts Rus
#HmS_Improved_Interface
Исправлено. Ссылка та же. Всех остальных это не касается, на версии, которой вы пользуетесь - такого нет.
Небольшое обновление: исправлена ошибка при которой двойной клик по любой активной категории приводил к отключению первого мода в списке (бета не обновлена).
Update:
1) Window size and state (maximized or not) will be remembered always. Window position will not be remembered. Option removed from settings.
2) Removed browser detection for "Go to webpage". MM will use ShellExecute (try Win+R -> type address). Allowed protocols are "http" and "https"
3) Removed hidden "Explorer" settings.
4) Icons changed to Oxygen Icons.
5) Improved detection "is mod list actual" when MM regains focus. Now list should be reloaded only if changes occurs (use F5 if you made changes to file mod_info.ini).
6) Other fixes.
мне кажется или разработчики специально начали вести информационный канал на английском в силу своего приподнятого настроения?! 96-copy
Ну что поделаешь... У меня тут как-то традиционно сложилось, что на русском я пишу, когда это касается в первую очередь здешний народ, а на английском - когда касается также Valery или kswdiy.
Вообще, вся последняя работа после приоритетов направлена на то, чтобы я вспомнил - что, где и как работает.
Удаление настроек, собственно, позволяет прощё проводить дальнейшие изменения в коде (самое главное - отдельная колонка для модмейкеров, позволило вырезать кучу страшных костылей).

Вообще, я достаточно долго присматривался к различным инструментам... с мыслью аля "щас напишу на крутой штуке и это всё будет круто", пока до меня наконец не дошло, что нифига у меня не выйдет - не хватит терпения переписать столько кода. Не говоря уже о том, что AutoIt таки снова обновляют и избавляют от старых проблем.
И вообще, Bes, что там не так с форматом .zip?
(16.09.2014 23:00)SyDr Wrote: [ -> ]И вообще, Bes, что там не так с форматом .zip?

Вконтакте видит что в архив есть EXE и блокирует файл для храения
а 7Z не может так сканировать...
только по этому 144
На мой взгляд лучше rar-а сейчас ничего не придумаешь )

Ай да Бес, ай да молодца )))
120+ mods today in my manager. When we started it was like 10 mods.
Valery, why you don't translate mod manager to French yet?

Also, show a screenshot with these mods Sm
Believe me, I would do it if only there was need.

I don't know a single Heroes 3 french player.

Great package it is!
Reference URL's