|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 05, 2021 07:29 PM |
|
|
that makes sense, as i think the madeditorpatch stuff was all worked into era. i just don't know where to put everything, i guess. i saw there was a mod for era 3 installed that included alternate battle background defs, but it didn't look like it added as much as the morn mod did; so i left it in during transfer.
looks like i'll just have to keep tweaking until i no longer have that crash. i hate being behind on work.
|
|
RerryR

  
    
Promising
Supreme Hero
Researching Magic
|
posted April 05, 2021 09:06 PM |
|
|
fred79 said: [
all of this from the old heroes data folder:

I'm not disappointed, I expected nothing less from your modding folder . Remember you had trouble migrating to the newer ERA version already years ago? It never worked. I still remember, now it is clear.
But I have been there too, you start modding and you keep adding more and more into your folder, somehow it works, but after some time you forgot what each of these files is doing or if you really need them.
Now it the time to cut clean, probably you don't need half of the files anymore, sort the files, merge the .pac archives and give proper names to everything. Structure it. If everything works you will feel relieved and you can build on it.
For the text files, you can use a compare tool to see if you have any important changes that are worth keeping.
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 05, 2021 10:02 PM |
|
|
almost all of the files you see there are were just extracted from lods so i could change stats/names/etc at will(the extracted files overwrite whatever's in the lods). nearly all of that wouldn't lead to a crash, as they are files the game uses itself. it may look like a hot mess, but it's all very efficient this way. 99.9% of what i mod, is all right there; no need to hunt for anything.
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted April 05, 2021 10:33 PM |
|
|
If you want to be able to share your content then you need to rebuild it from scratch and be compatible with minimum 2.47F version. Which means mod packing and no data replacing at all.
As it is now, I see no solution.
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 05, 2021 10:42 PM |
|
|
i'll figure it out, then post what i did to fix it. and if not, then i'll live-stream me setting my computer on fire.
|
|
Bersy

    
    
Honorable
Supreme Hero
|
posted April 06, 2021 01:53 PM |
|
|
I'd start with moving all Data*.* files (not directories) to Databackup, except h3bitmap.lod/h3sprite.lod, probably. Files outside of lod/pac have the highest priority and thus break mods system. They are loaded instead of the same name files from mods.
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 06, 2021 11:15 PM |
|
|
i want what i'm transferring to have the highest priority, though. that's entirely the point. i just have to find whatever's conflicting in the era 3 package, and either replace or remove what's needed for my changes to function how they did initially.
|
|
Bersy

    
    
Honorable
Supreme Hero
|
posted April 07, 2021 10:41 PM |
|
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 07, 2021 11:05 PM |
|
|
i'll try that, thanks. question, though: why wouldn't a conflict still exist if i were only moving loose files to a lod/pac? i don't see the reasoning of how that might fix the issue.
|
|
Bersy

    
    
Honorable
Supreme Hero
|
posted April 08, 2021 12:43 PM |
|
|
|
Bersy

    
    
Honorable
Supreme Hero
|
posted April 11, 2021 01:29 AM |
|
|

A new HoMM 3 ERA version was released
Current version: 3.4.0
Support for animation and selection of a group of def frames in user dialogs;
Support for horizontal text alignment and embedded block images;
Support for pcx images with 16-bit color depth in custom dialogs;
Support for accessing ERM arrays by dynamic indexes;
Ability to handle keyboard, scroll wheel, and click events outside the main area for custom dialogs;
New events of victory, defeat, transfer of the hero between campaigns, selection of skills on level up. Local map events.
New exported functions for working with files and folders.
Fixed the transfer of commanders in companies through transit zones.
Support for 32-bit colors in custom dialog backgrounds.
Support for keyboard shortcuts and clicks with ALT held down.
Updated EPM editor, bug fixes.
Download
Version 3.4.0 (04/2020)
------------------------
[+] Added possibility to use animated defs in DL-dialogs. Just append " animated" to dialog item name to make it animated. Example: "Def" => "Def animated".
Up to 10 animated defs are supported for each dialog. Animation speed is 10 frames per second. One single DEF group of frames is used.
[+] Added possibility to specify frames group index for defs in DL-dialogs. Write frame index as GROUP_INDEX * 100000 + FRAME_INDEX. Group indexes are counted from 0.
[+] Implemented horizontal text alignment support in Era Markup Language (EML).
To specify alignment use either regular color tags with new align=xxx attribute or new tag "text".
Possible alignment values: "left", "center", "right".
Examples:
{~RosyBrown align=right}Some text with(out) images{~}
{~text align=center}Some text with(out) images{~}
{~RosyBrown align="left"}Some text with(out) images{~}
{~text color="RosyBrown" align="left"}Some text with(out) images{~}
Attribute values without spaces and special chars may be written without double quotes.
[+] Implemented block-style images support for Era Markup Language (EML).
Use "block" attribute to mark image in text as block-style. New line before and after image will be forced automatically.
Vertical space in text is also automatically reserved for block images. Moreover, they can be partially scrolled without vanishing effect, occuring for inline images.
Examples:
!!IF:M^{~text align=center}{~Orange}Fire camping{~}
----
{~>CDEVIL.def:0:0 valign="middle" block}
----
{~>cndrgn.def:12:2 block}{~}^;
[+] Added support for 65536-color pcx images (pcx16) in DL-dialogs. Default loading mode is 256 colors (pcx8). To load image as pcx16 change its name in dialogs editor to '****.pcx.pcx16'. Real file name in lod/pac archive should be left as is. The engine will recognise new extension, transform it into '.pcx' and load image as pcx16.
[+] Improved ERM 2 compiler. It became possible to use named local variables and quick variables (f..t) as arrays subscripts.
Syntax: (array[index]) or (array).
Index value is evaluated BEFORE current receiver, thus do not change it in receiver itself like "!!MO998:G?i G(array)".
A new magic constant 'SIZE' was added to return array size. Usage: (array[SIZE]). It's compiled into count of array items.
Thus looping through all array items became easy:
!!re i/0/(array[SIZE])/1/-1; Note the last -1, meaning loop from index 0 to SIZE - 1
!!IF:M^%(array)^;
!!en;
Note, that regular constants are also supported:
!!IF:M^%(array[PLAYER_TEAL])^;
[+] Implemented automatical static and dynamical index checking for ERM 2.0 arrays. Invalid indexes are reported and forced to valid range.
Example:
!#VA(msgType[7]:y) (msgColor[7]:y);
!!re i/(PLAYER_FIRST)/(PLAYER_LAST);
!!VR(msgType):S(PIC_TYPE_FLAG); Here we get error. Array size is 7, while number of game players is 8. i = 7 is outside of valid 0..6 range
!!VR(msgColor):Si; Here we get error. Array size is 7, while number of game players is 8. i = 7 is outside of valid 0..6 range
!!en;
Let's rewrite the example without bugs:
!#VA(msgType[NUM_PLAYERS]:y) (msgColor[NUM_PLAYERS]:y);
!!re i/(PLAYER_FIRST)/(PLAYER_LAST);
!!VR(msgType):S(PIC_TYPE_FLAG);
!!VR(msgColor):Si;
!!en;
[+] Event DL/(OnCustomDialogEvent) now receive all mouse/keyboard parameters, accessible via !!CM and tracks clicks outside dialogs main area.
Check CM:T or i^dlg_action^ value for:
(DLG_ACTION_INDLG_CLICK)
(DLG_ACTION_OUTDLG_CLICK)
(DLG_ACTION_MOUSE_WHEEL)
(DLG_ACTION_KEY_PRESSED)
Example:
!?DL&i^dlg_action^=(DLG_ACTION_OUTDLG_CLICK);
!!IF:M^You clicked outside dialog!^;
For (DLG_ACTION_MOUSE_WHEEL) action CM:S or i^mouse_action^ can be one of:
(MOUSE_WHEEL_UP)
(MOUSE_WHEEL_DOWN)
Example:
!?DL&i^dlg_action^=(DLG_ACTION_MOUSE_WHEEL);
!!IF:M^Wheel: %i(mouse_action)^; display 1/-1 for wheel up/down
Keyboard presses in dialog can be handled now using Era Erm Framework:
!?DL&i^dlg_action^=(DLG_ACTION_KEY_PRESSED)/i^key^=(KEY_Q);
!!IF:M^Good buy any dialog!^;
!!DLi^dlg_id^:C(TRUE);
Added two global variables to Era Erm Framework:
- i^dlg_action^ with CM:T value (action type). Specially useful for DL-dialog events. See DLG_ACTION_XXX constants.
- i^dlg_id^ with active DL-dialog ID.
[+] !!VR:F command can be called with 3 parameters now: !!VR(var):F(minValue)/(maxValue)/(showErrors);
If the third parameter is specified and not (FALSE), values outside specified range are reported using regular ERM error reporting dialog.
[+] Added new ERM events:
- "OnWinGame" occurs when human player wins scenario.
- "OnLoseGame" occurs when human player loses scenario.
- "OnTransferHero" occurs when hero data from the previous campaign scenario is transferred to the next zone.
The events occurs after instructions but before PI (OnAfterErmInstructions).
The only argument is ID of hero, which is transferred from the previous scenario.
- "OnAfterHeroGainLevel" occurs after AI/Human hero level-up. Dialog is already closed. Use (ERM_FLAG_IS_HUMAN) and (CURRENT_HERO) constants.
The only argument is Hero ID.
[+] Added extra parameter to "OnKeyPressed" event. "OnKeyPressed" occurs multiple times, when you hold the key, while it's sometimes necessary to catch only the first time, when key state changes to DOWN and ignore other events until key state changes to UP. The third event argument serves this purpose and is TRUE only when the key changes its state to DOWN.
!?FU(OnKeyPressed);
!#VA(key:x) (preventDefault:x) (isDown:x);
[+] Implemented two universal events for handling human local events: "OnBeforeLocalEvent" and "OnAfterLocalEvent". They occur before any !?LE/!$LE trigger respecively
and receive 3 parameters: x, y and z coordinates.
Example:
!?FU(OnBeforeLocalEvent);
!#VA(x:x) (y:x) (z:x);
!!IF:M^OnBeforeLocalEvent %(x) %(y) %(z)^;
!?FU(OnAfterLocalEvent);
!#VA(x:x) (y:x) (z:x);
!!IF:M^OnAfterLocalEvent %(x) %(y) %(z)^;
[+] Added the following new functions to Era Erm Framework:
!?FU(IsDllLoaded);
; Returns (TRUE) is specified DLL is loaded. The check is fast and does not lead to loading dll.
!#VA(dllFileNamePtr:x); DLL file name with extension (*.dll, *.era, *.ani, etc).
!#VA(result:x); Boolean. (TRUE) if DLL is loaded.
!?FU(FileExists);
; Returns true if file (not directory) exists.
!#VA(filePathPtr:x); Absolute or relative path to file
!#VA(result:x); Boolean. (TRUE) if file exists and is not a directory
!?FU(DirExists);
; Returns true if a directory (not a file) exists.
!#VA(dirPathPtr:x); Absolute or relative path to directory
!#VA(result:x); Boolean. (TRUE) if directory exists and is not a directory
!?FU(DeleteFile);
; Deletes specified file and returns success flag.
!#VA(filePathPtr:x); Absolute or relative path to directory
!#VA(result:x); Boolean. (TRUE) if file existed and was deleted.
!?FU(ClearIniCache);
; Erases all cached ini file data from memory. You can safely delete ini file afterwards.
!#VA(filePathPtr:x); Absolute or relative path to ini file
!?FU(CreateDir);
; Creates new directory if it does not exist.
!#VA(dirPathPtr:x); Absolute or relative path to directory
[+] The following improvements were introduced in "Era Erm Framework" mod:
- Added new globally saved parameters for "OnKeyPressed" event:
i^key_down^: boolean. TRUE only when the key changes its state from UP to DOWN the first time until being released.
[+] Added the following exported functions to era.dll:
- function IsCampaign: TDwordBool;
!!SN:F^IsCampaign^; v1 = (TRUE) or (FALSE)
- procedure GetCampaignFileName (Buf: pchar);
!!SN:F^GetCampaignFileName^/?(campaignFileName:z); will crash if it's not campaign
- procedure GetMapFileName (Buf: pchar);
!!SN:F^GetMapFileName^/?(mapFileName:z);
- function GetCampaignMapInd: integer;
Returns campaign map zone index (index in original zone maps list, starting from 0).
!!SN:F^GetCampaignMapInd^; will crash if it's not campaign
!!IF:M^%v1^;
[+] Fixed transferring of WoG commanders with heroes in campaigns. Previously transferring didn't work if hero was inactive in transition zone.
"OnTransferHero" is called for all transferred heroes, even for inactive ones, which will be used in other zones.
[+] Added support for 32-bit colors in backgrounds of text items (rewritten Pcx16_FillRect).
[+] Disabled ALT + KEY system menu triggering in windowed mode. ALT key combinations can be freely used by scripts.
[+] Updated ERM editor.
[*] Fixed non-working "OnBeforeBattleReplay" and "OnAfterBattleReplay events". Newest "BattleReplay" plugin by igrik is required.
After battle end when user clicks "Cancel" button, "OnBeforeBattleReplay" is generated. Battle state is reset and "OnBattleReplay" event
is generated, where you can revert global variables to pre-battle state, because OnBeforeBattleUniversal will not be called twice.
[*] Renamed "OnTownHallMouseClick" to more accurate "OnTownFortMouseClick".
[!] SN:Q is deprecated and shoudn't be used for new scripts because it may break any ERM library/mod/script functionality.
ERM interpreter and Era Erm Framework were updated to support SN:Q in old scripts.
If an event has at least single Lua/Erm/plugin handler, whenever it ends or SN:Q is called, an "OriginalEventName_Quit" trigger is called with the same x-arguments.
In quit triggers SN:Q works as FU:E.
Example:
!?FU(OnAfterErmInstructions);
!!FU(ex_OnSomeCustomEvent):P;
!?FU(ex_OnSomeCustomEvent);
!!IF:M^Trigger 1^;
!!SN:Q; skip Trigger 2, trigger "ex_OnSomeCustomEvent_Quit" event
!?FU(ex_OnSomeCustomEvent);
!!IF:M^Trigger 2^;
!?FU(ex_OnSomeCustomEvent_Quit);
!!IF:M^Quit Trigger Handler^;
!!SN:Q; works as FU:E here
!?FU(ex_OnSomeCustomEvent_Quit);
!!IF:M^Another Quit Trigger Handler^;
[-] Fixed bug with random input delay in text input controls.
[-] Fixed bug in Era Erm Framework: NewIntArray and NewStrArray function were ignoring (storageType) argument.
[-] Fixed bug in Era Erm Framework: mouse/keyboard event data was not restored on trigger end.
[-] Fixed invalid spells count for Thunder Lord in zcrtrait.txt. Credits: Archer30.
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
wuxiangjinxing

 

Hired Hero
|
posted April 11, 2021 01:38 AM |
|
|
I have some questions not very related to ERA but Bersy you are an expert in the engine so I might want try my luck:
1) Is the movement points of a hero saved as an integer or float in game?
2) Is there any data for 'movement points of a hero on adventure map' other than the hero's movement points? (I somewhat feel that those two might be different)
|
|
Bersy

    
    
Honorable
Supreme Hero
|
posted April 11, 2021 07:27 PM |
|
Edited by Bersy at 19:29, 11 Apr 2021.
|
|
R3F0rmD

 
Tavern Dweller
|
posted April 16, 2021 09:03 PM |
|
|
|
Bersy

    
    
Honorable
Supreme Hero
|
posted April 16, 2021 11:34 PM |
|
|
|
fenuks

 
Tavern Dweller
|
posted April 17, 2021 10:42 AM |
|
|
I like ERA as well, but I don't like Windows. I've installed ERA 3.4 on GOG version H3 Complete, but running it via wine fails (ERA 2.x works flawlessly, so does HD mod and Heroes 3 in general).
I've uploaded [url=https://pastebin.com/87phwt4R]exception content.txt[/url] (other files in Debug/Era folder doesn't seem to contain valuable information).
|
|
Bersy

    
    
Honorable
Supreme Hero
|
posted April 20, 2021 01:14 AM |
|
|
|
fenuks

 
Tavern Dweller
|
posted April 20, 2021 11:17 AM |
|
|
Thank you! I'm happy to report that you were correct. I can run ERA from file you graciously provided, and it works like a charm.
|
|
Bersy

    
    
Honorable
Supreme Hero
|
posted April 22, 2021 03:15 AM |
|
|
|
fenuks

 
Tavern Dweller
|
posted April 22, 2021 12:46 PM |
|
|
I run Linux for over 10 years now, and never looked back. It's so much better. In recent years gaming situation improved vastly with number of native titles and huge advances in wine/proton, so I'd say switch should be possible for people who are willing to invest some time into the process.
About ERA installation, would it be difficult to do it manually without installer? You mentioned batch scripts are possible reason for my problems, so I suppose it would require some tinkering… As far I can see after extracting contents of Era 3.X.exe, folders Debug, DebugMaps, Help and Tools are simply extracted into game folder, and installing script is Tools/install.bat, right? I will try to go through it, and figure out what is the reason for installation failure. As I mentioned, I could install Era 2.X without this problem.
|
|
|