Current time: 22.11.2024, 15:02 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA II
» WoG Era 2: Русская и Английская версии
Author Message
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #2761

Понятно. Жаль, что исходников нет - можно было бы наверное добавить срабатывание плагина в триггере OnSetupBattlefield и получить полный рамдом pcx на боевых полях. Хотя и текущее состояние плагина вполне устраивает (тем более для меня - плохого игрока, часто использующего загрузку сохранений).
24.12.2017 18:26
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #2762

XEPOMAHT, если pcx загружается после данного триггера и освобождается после боя, то вполне можно. И дай, плагин банально использует АПИ ЭРЫ: RedirectFile.
Code:
LIBRARY RandomSkin;
{
DESCRIPTION:  Random skin plugin for Era
AUTHOR:       Alexander Shostak (aka Berserker aka EtherniDee aka BerSoft)
}

USES
  Utils, SysUtils, Era, Lists, Files, StrLib;
  
CONST
  RANDOM_SKIN_FOLDER  = 'Data\RandomSkin';


VAR
{o} RandomSets: {O} Lists.TList {OF Lists.TStringList};


PROCEDURE RandomizeSkin;
VAR
{U} RandomSet:  Lists.TStringList;
    i:          INTEGER;
  
BEGIN
  RandomSet :=  NIL;
  // * * * * * //
  FOR i := 0 TO RandomSets.Count - 1 DO BEGIN
    RandomSet :=  RandomSets[i];
    Era.GlobalRedirectFile(PCHAR(RandomSet[0]), PCHAR(RandomSet[Random(RandomSet.Count)]));
  END; // .FOR
END; // .PROCEDURE RandomizeSkin

FUNCTION LoadSettingsFile (SearchRec: SysUtils.TSearchRec): BOOLEAN; (* ContSearch? *)
VAR
{U} RandomSet:    Lists.TStringList;
    FileContents: STRING;
    SkinSets:     Utils.TArrayOfString;
    SetItems:     Utils.TArrayOfString;
    i, j:         INTEGER;

BEGIN
  RandomSet :=  NIL;
  // * * * * * //

  IF
    (SearchRec.Size > 0)  AND
    Files.ReadFileContents(RANDOM_SKIN_FOLDER + '\' + SearchRec.Name, FileContents)
  THEN BEGIN
    SkinSets  :=  StrLib.Explode(FileContents, '*');
    
    FOR i := 0 TO HIGH(SkinSets) DO BEGIN
      RandomSet :=  Lists.NewSimpleStrList;
      SetItems  :=  StrLib.Explode(SkinSets[i], #13#10);
      
      FOR j := 0 TO HIGH(SetItems) DO BEGIN
        SetItems[j] :=  SysUtils.Trim(SetItems[j]);
        
        IF SetItems[j] <> '' THEN BEGIN
          RandomSet.Add(SetItems[j]);
        END; // .IF
      END; // .FOR
      
      IF RandomSet.Count = 0 THEN BEGIN
        SysUtils.FreeAndNil(RandomSet);
      END // .IF
      ELSE BEGIN
        RandomSets.Add(RandomSet); RandomSet := NIL;
      END; // .ELSE
    END; // .FOR
  END; // .IF
  
  RESULT  :=  TRUE;
END; // .FUNCTION LoadSettingsFile

PROCEDURE LoadSettings;
BEGIN
  Files.Scan
  (
    RANDOM_SKIN_FOLDER + '\*.txt',
    Files.faNotDirectory,
    '.txt',
    LoadSettingsFile
  );
END; // .PROCEDURE LoadSettings
  
PROCEDURE OnBeforeErmInstructions (Event: Era.PEvent); STDCALL;
BEGIN
  RandomizeSkin;
END; // .PROCEDURE OnBeforeErmInstructions

PROCEDURE OnAfterLoadGame (Event: Era.PEvent); STDCALL;
BEGIN
  RandomizeSkin;
END; // .PROCEDURE OnAfterLoadGame

PROCEDURE OnAfterWoG (Event: Era.PEvent); STDCALL;
BEGIN
  LoadSettings;
  RandomizeSkin;
END; // .PROCEDURE OnAfterWoG

BEGIN
  Randomize;
  RandomSets  :=  Lists.NewStrictList(Lists.TStringList);
  
  Era.RegisterHandler(OnAfterWoG, 'OnAfterWoG');
  Era.RegisterHandler(OnBeforeErmInstructions, 'OnBeforeErmInstructions');
  Era.RegisterHandler(OnAfterLoadGame, 'OnAfterLoadGame');
END.


Думаешь, стоит вызывать выбор случайных pcx и перед боем?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
24.12.2017 21:34
Find all posts by this user Quote this message in a reply
Valery Offline

Posts: 2196
Post: #2763

So, a bit of reporting, as I started finally test with tew4 which is heavily scripted. The first problem I ran in was that if you install Homm+HD+era, it will ask you to reinstall HD because patcher not updated. Installing Homm+era+HD is fine.

Then game runs perfect, only played 2 weeks or so, but pushed all buttons, activated 18 interface mods, until now looks great and I love the new fonts for experience screen + the display of values for luck/morale, thx to whoever worked on them (igrik?).

And thx to Bersy for coming back from marriage clouds to finalize his master work. ))
(This post was last modified: 24.12.2017 23:28 by Valery.)
24.12.2017 23:27
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #2764

Great thanks to igrik and many other guys, including you, Val. Without you any work would be senseless )
And I'm still in marriage clouds, working on ability to load and png/bmp/jpeg as in-game pcx16 image with scaling support.

Code:
i := ResizeBmp24(LoadImageAsBmp24('D:\a4.jpg'), 800, 600, FREE_ORIGINAL_BMP);
ResourceTree.AddItem(Bmp24ToPcx16(i, 'zpic1005.pcx'));


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
25.12.2017 00:56
Find all posts by this user Quote this message in a reply
Valery Offline

Posts: 2196
Post: #2765

well, hope you are in great shape, such a beautiful photo 126
(This post was last modified: 25.12.2017 03:09 by Valery.)
25.12.2017 01:08
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #2766

(24.12.2017 21:34)Berserker Wrote:  Думаешь, стоит вызывать выбор случайных pcx и перед боем?

Можно и перед боем, но с проверкой байта 0х91F6C7. Но лучше именно в OnSetupBattlefield несмотря на то, что там боевое поле уже загружено (т.е. pcx полей будут измены на следующую битву, а в эту битву увидим то, что выпало при загрузке игры или сохранении).
25.12.2017 01:31
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #2767

XEPOMAHT, пока возражений нет и проблем с другими ресурсами не вижу (да, холостая генерация может чутку испортить общее качество ГСЧ, но нужно тестировать).
Valery, ))


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
25.12.2017 03:51
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #2768

(25.12.2017 00:56)Berserker Wrote:  And I'm still in marriage clouds, working on ability to load and png/bmp/jpeg as in-game pcx16 image with scaling support.

Code:
i := ResizeBmp24(LoadImageAsBmp24('D:\a4.jpg'), 800, 600, FREE_ORIGINAL_BMP);
ResourceTree.AddItem(Bmp24ToPcx16(i, 'zpic1005.pcx'));
Berserker, дай мне эту dll-ку, чтобы я мог продолжить IF:E/D


game bug fixes extended.dll || My Plugins || My GitHub
25.12.2017 16:31
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #2769

С загрузкой большинства типов изображений и ограничениями менеджера ресурсов (уникальные 12-символьные имена) разобрался, мастер igrik, если получится, порадует всех очередной заменой IF:E/D диалогов на родные (кроме гиф-анимации и проигрывания видео). В настоящее время масштабирование линейное, билинейное тормозило, библиотеки пока не пробовал.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
26.12.2017 18:00
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #2770

XEPOMAHT, я добавил в веб-папку Plugins плагин RandomSkin. Попробуй, пожалуйста. Должен теперь в OnSetupBattlefield срабатывать. Там же исходник. Можно переписать на чём угодно.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
27.12.2017 02:46
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #2771

Berserker, спасибо! Рамдомизация боевых полей работает как надо. Только расширение нужно сменить на .era, чтобы замена pcx в главном меню тоже работала.
27.12.2017 11:37
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #2772

XEPOMAHT, на здоровье! Отлично ) Можно награбить полей отовсюду и выпускать мини-мод ))


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
27.12.2017 14:46
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #2773

Berserker, в этом графическом режиме (фильтре) с HD модом возникает такая вот проблема.
скрины (Click to View)


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 27.12.2017 19:56 by igrik.)
27.12.2017 19:56
Visit this user's website Find all posts by this user Quote this message in a reply
Valery Offline

Posts: 2196
Post: #2774

Following a bug complain in HC, I updated "monsters drop resources" script, as it didn't check if mithril is enabled, thus wasted a lot of rewards with mithril which could not be used.

monsters drop resources.erm

Modifications :
27.12.2017 20:16
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #2775

Valery, cannot find such script in WoG package.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
27.12.2017 20:23
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group