Heroes of Might and Magic Community
visiting hero! Register | Today's Posts | Games | Search! | FAQ/Rules | AvatarList | MemberList | Profile


Age of Heroes Headlines:  
5 Oct 2016: Heroes VII development comes to an end.. - read more
6 Aug 2016: Troubled Heroes VII Expansion Release - read more
26 Apr 2016: Heroes VII XPack - Trial by Fire - Coming out in June! - read more
17 Apr 2016: Global Alternative Creatures MOD for H7 after 1.8 Patch! - read more
7 Mar 2016: Romero launches a Piano Sonata Album Kickstarter! - read more
19 Feb 2016: Heroes 5.5 RC6, Heroes VII patch 1.7 are out! - read more
13 Jan 2016: Horn of the Abyss 1.4 Available for Download! - read more
17 Dec 2015: Heroes 5.5 update, 1.6 out for H7 - read more
23 Nov 2015: H7 1.4 & 1.5 patches Released - read more
31 Oct 2015: First H7 patches are out, End of DoC development - read more
5 Oct 2016: Heroes VII development comes to an end.. - read more
[X] Remove Ads
LOGIN:     Username:     Password:         [ Register ]
HOMM1: info forum | HOMM2: info forum | HOMM3: info mods forum | HOMM4: info CTG forum | HOMM5: info mods forum | MMH6: wiki forum | MMH7: wiki forum
Heroes Community > Heroes 3.5 - WoG and Beyond > Thread: ERA III
Thread: ERA III This thread is 3 pages long: 1 2 3 · «PREV
AncientDruids
AncientDruids


Known Hero
BEware THe DRuids
posted August 26, 2020 03:30 AM
Edited by AncientDruids at 03:30, 26 Aug 2020.

Can someone describe in detail what exactly 'Game Enhancement Mod' contains and does?

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
RerryR
RerryR


Promising
Famous Hero
Researching Magic
posted August 26, 2020 07:15 AM
Edited by RerryR at 07:19, 26 Aug 2020.

AncientDruids said:
Can someone describe in detail what exactly 'Game Enhancement Mod' contains and does?


GEM is a mod that adds various quality of life features, fixes for H3 ERA/WoG, and a few graphical improvements. These fixes were previously available in the "gaming assembly" from Daemon. He now released them as a standalone mod. That allows for faster update cycles because the ERA platform, WoG Scripts, and GEM can now be developed independently from each other.
An Up to Date Heroes ERA 3 Package is still available for everyone to download.


Game Enhancement Mod:
1) Scripts:
Changing the type of battle on the Adventure Map by "W" key button;
Show the rest of the route on ALT + Right-click on the Adventure Map;
Selecting an inactive hero by SHIFT + Left-click on him / her on the Adventure Map;
Removing an inactive hero by SHIFT + ALT + Left-click on him / her on the Adventure Map;
Real time clock by Right-click on the Adventure Map;
Correction of the opening radius of the entire map;

Button "Wait for everyone" in battle by "E" key button;
Magogs do not inflict damage on ally creatures in battle - Right-click on "Defend" to change;
The ability to escape in a battle with neutrals in the Shackles of War;
Correction of bonuses and morale / luck penalty from 8th level creatures in battle;

2) Plugins:
accumulate_8lv_creatures.bin - allows you to accumulate level 8 creatures in their dwellings;
accumulate_santagremlins_creatures.bin - allows you to accumulate santa gremlins in their dwellings;
AstralBagFix.bin - fixes a bug with the Astral Spirit (I don't know which one );
ArtGuard.dll - prevents you from stealing artifacts and scrolls directly next to monsters;
badluck.era - activates "Failure" for creatures in battle, the damage is cut in half;
battle attack type selection fix.bin - fixes a bug with the choice of the type of attack (was this one?);
BattleAIvsAIFix.dll - allows the AI ​​to get the correct amount of experience and skeletons in battles;
BattleReplay.dll - allows you to replay battles! HOORAY!!!;
draw soils.bin - correct display of soil, roads and terrain objects;
fast upgrade stacks in town.dll - fast upgrades of creatures by "A" + Left-click;
game bug fixes.dll - fixes even more game bugs than the original plugin;
StartArmyAllSlots.bin - all heroes start with 3 creature slots;
wog native dialogs.era - open heroes meeting screen in the town by "E", showing the killed creatures in battle, quickly end the battle by "Q";

3) Graphics:
Other commanders of Inferno, Tower, Conjugation;
Other t8 of the Castle, Stronghold, Tower, Inferno, Necropolis;
Fixing many icons;

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Bersy
Bersy


Honorable
Supreme Hero
posted August 26, 2020 12:32 PM

Quique30, upload Debug directory after you press "Save ERM memory dump", please.
____________
Heroes 3 Era and everything for it. Releases folder for releases.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Quique30
Quique30


Adventuring Hero
posted August 26, 2020 02:28 PM

Bersy said:
Quique30, upload Debug directory after you press "Save ERM memory dump", please.


Sure thing!

https://filebin.net/azxvt9kmemuiot67

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Bersy
Bersy


Honorable
Supreme Hero
posted August 27, 2020 12:44 AM

Everything is ok with memory. Could you provide saved game right before error?
____________
Heroes 3 Era and everything for it. Releases folder for releases.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Quique30
Quique30


Adventuring Hero
posted August 27, 2020 12:57 AM
Edited by Quique30 at 00:57, 27 Aug 2020.

Bersy said:
Everything is ok with memory. Could you provide saved game right before error?


Sure. I don't have the original save. But I can recreate it.

Here it is:

https://filebin.net/4ncgi22c4altss74

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Bersy
Bersy


Honorable
Supreme Hero
posted September 01, 2020 03:06 PM
Edited by Bersy at 02:00, 05 Sep 2020.

Quique30, we didn't find error reason currently. Will investigate further, if possible.

Found issue in WoG script.
Solution: http://ge.tt/7JpuGs63
____________
Heroes 3 Era and everything for it. Releases folder for releases.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Bersy
Bersy


Honorable
Supreme Hero
posted September 03, 2020 03:29 PM
Edited by Bersy at 02:06, 05 Sep 2020.



A new HoMM 3 ERA version was released
Current version: 3.0.4

What's new?

Added town income calculation event. The income limit has been increased from 32767 to 2 billion+
Improved work with EPM loops and the whole stability of EPM engine.
For Asian languages, it is now possible to switch the text input element from game to system.
The original portraits, descriptions, and specializations of Nagash and Jeddit were returned. In WoG 3.58, these heroes received the Veil of darkness and the Rebuilding of cities.
Fixed more than 7 bugs that may have previously caused crashes or unstable game behavior.

Download
Download WoG Scripts mod

Changelog:

Version 3.0.4 (09/2020)
------------------------
[+] Extended town income limits from -32768..32767 to -2147483648..+2147483648 and added new event OnCalculateTownIncome
   with three parameters: Town ID, Income (gold amount), Account resource silo? (0 or 1).

[+] Introduced extended !!re syntax: !!re counter/start/stop/step/stop_modifier, where stop_modifier is any integer value,
   that will be added to stop value. New syntax allows to express such loops as FROM 0 to SOME_VAR - 1, for instance.

   Example:
   !!re i/0/(numStacks)/1/-1:;
     ...
   !!en:;

[+] !!re allows to use any variables now, including global named s/i variables.

[+] Improved ERM stability. Now all non-specified parameters are treated as 0 in X# syntax and ignored in X$ syntax.
   As a result, !!DL:A without the 4-th parameter will not randomly crash anymore and !!TR may be used with any number of parameters,
   while exactly 8 were required previously. Note, that many ERM commands still require exact number of obligatory parameters.

[+] !!DL:A was improved, accepting any string including string literal as the 3-d parameter.

[+] Included updated "wog native dialogs" plugin by igrik. From now plugins exports function __cdecl int UseWin32InputControl (int newState).
   The function allows to switch between Heroes 3 native input control and Windows input control. The latter allows to input Asian and '{', '}' characters.
   Mode can be switched any time even using ERM. UseWin32InputControl returns previous state.

[*] Fully restored Nagash and Jeddite original portraits, descriptions and specialties.

[*] Changed ERM error report generating: not only ERM memory dump is made, but the whole debug information is saved, like
   if you press F11 manually.

[-] Fixed WoG bug, disallowing to set dialog hints twice using DL:H command. Credits: gamecreator.
[-] Fixed bug in ERM caching engine: GET-syntax could produce garbage values on cache hit.
[-] Fixed bug in ERM engine, causing crashes in !!UR:S and a few other possible commands.
[-] Fixed bug: IF:N$ used to cause ERM errors and crashes. Credits: helgtla.
[-] Fixed bug: HE:P used to return unsigned 65535 instead of signed -1.
[-] Fixed bug: ERM compiler didn't process post-triggers.
[-] Fixed bug, causing many Era commands to return garbage after valid string contents. Credits: PerryR.
[-] Fixed map editor => WoG tools menu shortcuts to actual programs. Credits: Archer30.
____________
Heroes 3 Era and everything for it. Releases folder for releases.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Bersy
Bersy


Honorable
Supreme Hero
posted September 21, 2020 01:04 AM



A new HoMM 3 ERA version was released
Current version: 3.0.5

What's new?

Updated "wog native dialogs" plugin from igrik: translation data was moved to json file. Support for fine-tuning fonts was added.
Fixed the patch for transformation altar. Hell Hydras are now transformed into bone dragons, and the original behavior is returned for mummies.
Significantly improved the "Era Erm Framework" mod. Added support for combining, filling and sorting arrays, expanded every day timer event the list of game constants. Added a few new mathematical functions.
Fixed 1 error with a missing portrait in the map editor, 2 errors in the EPM report generation module, and 1 error in the EPM engine.
Updated EPM editor.

Download
Download WoG Scripts mod

Changelog:

Version 3.0.5 (09/2020)
------------------------
[+] Updated "wog native dialogs" plugin. All localized string were moved to json file.
   Added possibility to tune fonts, used in different dialogs. Credits: igrik.

[+] Updated "skeleton transformer fix.bin" patch. Hell Hydra is transformed into Bone Dragon.
   Returned original transformation for mummies. Credits: Bes.

[+] SN:V now supports negative indexes, meaning n-th from end, the same as SN:M.

[+] Added possibility to query SN:M arrays information.
   !!SN:M#1/(?)$2/(?)$3/?($4)[/?$5];
   #1 - array ID
   $2 - items count
   $3 - items type (0 - integers, 1 - strings)
   $4 - items storage type (-1 - trigger local, 0 - temporary, 1 - with savegame stored contents)
   $5 - unsafe temporary address of array first item in memory
   At least single #2..#4 parameter should use GET syntax. SET-syntax parameters are ignored in this case.

   Example:
   !!SN:M(array)/d/?(itemsType:y)/d; check if it's array of integers or strings
   !!if&(itemsType)=(M_INT):; ...

[+] Added new constants to "Era Erm Framework" mod:
 - TOWN_XXX constants for each town type in the game.
 - CALLCONV_XXX constants for possible SN:E calling conventions.
 - BATTLE_XXX constants for battle sides and stack limits.
 - FLOAT_INF and FLOAT_NEG_INF, representing infinity values for float numbers.
 Usage:
 !!VR(inf:e):C(FLOAT_INF);                   Assign positive infinity to (inf) variable without type conversion
 !!IF&(someValue)=(inf):M^Value is too big^; Check some e-var for positive infinity

[+] Extended OnEveryDay trigger in "Era Erm Framework" mod. The following global variables are automatically set:
   - i^timerDay^:        1..+inf
   - i^timerWeekDay^:    1..7
   - i^timerMonthDay^:   1..28
   - i^timerWeek^:       1..+inf
   - i^timerMonthWeek^:  1..4
   - i^timerMonth^:      1..+inf
   - i^timerOnce^:       0..1
   - i^timerOwner^:      0..7
   - i^timerIsAi^:       0..1
   - i^timerIsHuman^:    0..1

[+] Added mathemetical functions to "Era Erm Framework" mod.

 !?FU(Pow);
 ; Raises value to specified power. All arguments and result are floats.
 ; Example: 2^3 = 8, i.e. 2 * 2 * 2 = 8
 !#VA(base:x) (power:x) (result:x);

 !?FU(Sqrt);
 ; Returns value square root. All arguments and result are floats.
 !#VA(value:x) (result:x);

 !?FU(IntLog2);
 ; Returns Ceil(Log2(N)) or 0 for invalid values (<= 0).

 Examples:

 !!FU(IntLog2):P100/?(res:y);
 !!IF:M^%(res)^; displays 7, because 2^7 = 128 and 2^6 = 64
 ; It means that 7 bits are necessary to hold data with 100 possible values.
 ; It also means, that if one value is 100x greater than the other one, then
 ; it would take 7 multiplications by 2 before the second value will become >= the first one.

 
 !!VR(base:e):S123 :10; base = 12.3
 !!VR(power:e):S35 :10; power = 3.5
 !!FU(Pow):P(base)/(power)/?(float:e);
 !!IF:M^%(float)^; 12.3 ^ 3.5 = 6526.31287


 !!VR(value:e):S123 :10;
 !!FU(Sqrt):P(value)/?(float:e);
 !!IF:M^%(float)^; 12.3 ^ 0.5 = 3.507. I.e. 3.507 * 3.507 = 12.3

[+] Added functions for SN:M arrays handling to "Era Erm Framework" mod.

 !?FU(Array_Join);
 ; Concatenates array items into single string, using passed glue string. Works with both numeric and string arrays.
 ; Example: ['one', 'two', 'three'] with glue ' --- ' become 'one --- two --- three'.
 ; Returns s^result^
 ; Uses s^_^
 !#VA(list:x);    Array ID.
 !#VA(gluePtr:x); Optional. Glue string. Default: ''.

 Example:

 ; Create list with names of the first 10 heroes
 !!SN:M(M_AUTO_ID)/10/(M_STR)/(M_TRIGGER_LOCAL)/?(names:y);

 !!re i/0/10/1/-1:;
   !!HEi:B0/?(heroName:z);
   !!SN:V(names)/i/(heroName);
 !!en:;

 ; Display joined list items
 !!FU(Join):P(names)/^
 ^;
 !!VR(textPtr:y):Zs^result^;
 !!IF:M^%z(textPtr)^;


 !?FU(Array_Sort);
 ; Sorts array items in ascending order. Allows to sort specific array subrange.
 !#VA(list:x);     Array ID.
 !#VA(startInd:x); Optional Start index of array subrange to sort. Default: 0.
 !#VA(endInd:x);   Optional End index of array subrange to sort. Default: numItems - 1.

 Example:
 ; Let (names) variable hold SN:M array ID with heroes names (see example with Join function)
 !!FU(Array_Sort):P(names); will sort it


 !?FU(Array_CustomSort);
 ; Sorts array items in ascending order user custom comparator function. Allows to sort specific array subrange.
 ; It's possible to perform any complex sorting in any direction and by unlimited number of criteria, using this method.
 ; It's a stable sorting method, i.e. items, which we be reported as equal, will retain their relative position to each other.
 ; For example, if sorting 'Ann', 'David' and 'Ken' by name length, the result will be 'Ann', 'Ken', 'David' and not 'Ken', 'Ann', 'David'.
 ; When sorting string array, comparator function will receive z-indexes of strings as arguments.
 !#VA(list:x);        Array ID.

 !#VA(compareFunc:x); Comparison ERM function ID. It will be called multiple times with the following arguments:
                    ; (value1, value2, state), where 'state' is any custom value, you specify on call to Array_CustomSort.
                    ; Usually state is some array ID or external structure address, that client use to compare items.
                    ;
                    ; The function must return value:
                    ; < 0 if value1-item should be placed before value2-item
                    ; > 0 if value1-item should be placed after value2-item
                    ; 0 if the ordering between two items should be left as is.

 !#VA(state:x);    Optional. Custom value to be always passed to comparison function as the third argument. Default: 0.
 !#VA(startInd:x); Optional. Start index of array subrange to sort. Default: 0.
 !#VA(endInd:x);   Optional. End index of array subrange to sort. Default: numItems - 1.

 Example 1. Sorting monsters IDs array by HP of each monster

 !!SN:M(M_AUTO_ID)/10/(M_INT)/(M_TRIGGER_LOCAL)/?(mons:y);
 !!SN:V(mons)/0/39/12/20/92/78/17/13/43/6/32;
 !!FU(Array_CustomSort):P(mons)/(tst_CompareByMonHp);
 !!FU(Array_Join):P(mons)/^ ^;
 !!IF:M^Monster IDs: %s(result)^;

 !?FU(tst_CompareByMonHp);
 !#VA(mon1:x) (mon2:x) (state:x) (result:x);
 !!VR(result):S0;

 !!MA:P(mon1)/?(hp1:y);
 !!MA:P(mon2)/?(hp2:y);

 !!if&(hp1)>(hp2):;
   !!VR(result):S1;
 !!el&(hp1)<(hp2):;
   !!VR(result):S-1;
 !!en;

 Example 2. Sorting visitor names by name length

 !!SN:M(M_AUTO_ID)/4/(M_STR)/(M_TRIGGER_LOCAL)/?(visitors:y);
 !!SN:V(visitors)/0/^Laura^/^Den^/^Agriel^/^Ken^;
 !!FU(Array_CustomSort):P(visitors)/(tst_CompareByStrLen);
 !!FU(Array_Join):P(visitors)/^ ^;
 !!IF:M^Visitors: %s(result)^;

 !?FU(tst_CompareByStrLen);
 !#VA(str1Ptr:x) (str2Ptr:x) (state:x) (result:x);
 !!VRz(str1Ptr):M4/?(str1Len:y);
 !!VRz(str2Ptr):M4/?(str2Len:y);
 !!VR(result):S(str1Len) -(str2Len);


 !?FU(Array_Revert);
 ; Reverts order of itmes in the array. Allows to reverse the order of specific array subrange only.
 !#VA(list:x);     Array ID.
 !#VA(startInd:x); Optional Start index of array subrange. Default: 0.
 !#VA(endInd:x);   Optional End index of array subrange. Default: numItems - 1.

 Example:
 ; Let (names) variable hold SN:M array ID with heroes names (see example with Join function)
 !!FU(Array_Revert):P(names); will revert items order


 !?FU(Array_Fill);
 ; Fills array or arrays subrange with incrementing/decrementing values.
 ; Example: FU(Array_Fill):P(array)/100/2; Will fill items with 100, 102, 104, 106...
 !#VA(list:x);       Array ID.
 !#VA(startValue:x); Starting value to fill with.
 !#VA(step:x);       Value to add to increase filler on each step. Default: 0.
 !#VA(startInd:x);   Optional. Start index of array subrange. Default: 0.
 !#VA(endInd:x);     Optional. End index of array subrange. Default: numItems - 1.

 Example:
 ; Let (array) is some array of integer numbers. Let's fill it with 100, 98, 96...
 !!FU(Array_Fill):P(array)/100/-2;

[*] Creating array using SN:M with 5 parameters does not change v1 anymore.
[*] Extracted all Era supplied ERM scripts into "Era Erm Framework" mod.
[*] Extracted ERM testing code into separate mod "Era Erm Tests".
[*] Updated ERM editor snippets and autocompletion files. Added fast 'ifm', 'ifl' and 'snm' snippets.

[-] Applied fixes to ERM constants (Era Erm Framework mod):
 Fixed constant name: MON_SUPREMEARCHANGEL => MON_SUPREME_ARCHANGEL.
 Fixed constant MON_LAST_WOG => 196 instead of 197. Credits: igrik.
 Fixed primary skills constants. Credits: Algor.

[-] Fixed crash on !#VA(-varName) syntax usage.
[-] Fixed ERM memory dump generation: slots reporting use to contain information about reserved items.
[-] Fixed x-variables reporting in ERM tracking module. Previosly garbage x0 value was output as the first one.
[-] Fixed Nagash portrait name in game and map editor executables. No more "missing hpsz001.pcx" error.
____________
Heroes 3 Era and everything for it. Releases folder for releases.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
XEricSin
XEricSin


Famous Hero
posted September 24, 2020 08:13 AM

Hi, there. Two problems here.

1. The replayed battle will have flag 1000 to be 0, causing problems like !?BG0&1000 failing to proceed in replays. I guess there is no easy solution, but anyway I post it here. Maybe igrik or someone can do something.

2. Function no longer support empty parameters? I remember this is supported in era2. Or maybe I was doing the wrong syntax all the time?
  eg. With !!FU(sdfdf):P1///////3; I expected to have x = 1/0...0/3, but I got 1/3/0...0.

!?CM0;
!!FU(sdfdf):P1//3;

!?FU(sdfdf);
!!SN:X?y1/?y2/?y3;
!!IF:M^%X1 %X2 %X3
%Y1 %Y2 %Y3 ^;

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
igrik
igrik


Promising
Known Hero
posted September 24, 2020 08:42 AM
Edited by igrik at 08:55, 24 Sep 2020.

XEricSin said:
1. The replayed battle will have flag 1000 to be 0, causing problems like !?BG0&1000 failing to proceed in replays. I guess there is no easy solution, but anyway I post it here. Maybe igrik or someone can do something.
In replayed battle flag 1000 is equal 1.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
XEricSin
XEricSin


Famous Hero
posted September 24, 2020 11:40 AM

igrik said:
In replayed battle flag 1000 is equal 1.


OK. It magically turned 1 this time. Problem is resolved. Haha.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
dragon99919
dragon99919

Tavern Dweller
posted September 28, 2020 12:05 PM

Great stuff here!

Can it be installed over HD + HotA install or should I use clean H3 Complete? I remember seeing some mod on AcidCave that fixed the issues with HotA map format making an issue in WoG but I'm not sure if that would work with that build.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Undeadgamer62
Undeadgamer62


Adventuring Hero
posted September 28, 2020 04:59 PM

dragon99919 said:
Great stuff here!

Can it be installed over HD + HotA install or should I use clean H3 Complete? I remember seeing some mod on AcidCave that fixed the issues with HotA map format making an issue in WoG but I'm not sure if that would work with that build.

It's always safer to use a clean install.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Jump To: « Prev Thread . . . Next Thread » This thread is 3 pages long: 1 2 3 · «PREV
Post New Poll    Post New Topic    Post New Reply

Page compiled in 0.0975 seconds