|
|
zmudziak22
Supreme Hero
Heroes 3 Fan
|
posted December 19, 2019 10:01 PM |
|
|
I launched WoG campaign in 2.9.1 and wanted try Era Trainer Mod by Salamandre, but campaign doesnt support external erm scripts. Trainer works fine in other maps and ROE and AB campaigns.
|
|
Bersy
Honorable
Supreme Hero
|
posted December 19, 2019 10:32 PM |
|
|
|
majaczek
Supreme Hero
Work at Magic Dimmension
|
posted December 19, 2019 10:33 PM |
|
Edited by majaczek at 22:54, 19 Dec 2019.
|
it seems hero receiver is buggy in era2.9.1
EDIT: Example - using secondary skill scrolling mod here
EDIT: Same in 2.9.2
|
|
Bersy
Honorable
Supreme Hero
|
posted December 19, 2019 10:37 PM |
|
Edited by Bersy at 23:11, 19 Dec 2019.
|
Quote: I launched WoG campaign in 2.9.1 and wanted try Era Trainer Mod by Salamandre, but campaign doesnt support external erm scripts. Trainer works fine in other maps and ROE and AB campaigns.
WoG campaigns disable external scripts loading for purpose.
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
Bersy
Honorable
Supreme Hero
|
posted December 19, 2019 11:11 PM |
bonus applied by Maurice on 20 Dec 2019. |
Edited by Bersy at 23:20, 19 Dec 2019.
|
Era 2.9.2 is out
I was working on new 2.9.x branch for a long time and it's finally ready. Key features of the update:
EPM script engine optimization allowed to speed up the execution of repeatable code by 10x times! (from 130 thousand commands/sec to 1.3 million commands/sec). It means faster and smoother gameplay, more heavy mods, more opportunities to improve AI.
Many improvements to the EPM were made, which will have a positive impact on the ease of writing and debugging code.
New events support: hero screen rendering, mouse clicks handling in recruit troops screens, city hall and kingdom overview dialog.
Script writers are provided with an interface to work with the recruitment dialog. It became possible to implement many ideas based on it: summoning different creatures in battle, transferring stacks between heroes, remote army purchase, new creature dwellings and much more.
Evolution of the Era code. Era 1.9 code is fully ported to Delphi. Angel.dll is now just a stub.
Gift for antiviruses: the old utility DEFka, replaced by a favorable version 2.0 on another engine.
Read the rest in the changelog: Help/Era/era ii changelog.txt.
====================
Special thanks to the fans of the game, who supported the project financially: Andarium() and several other players (). Please write you nicknames on/after donations, so that I could mention you in annals.
Special thanks to daemon_n for patronage of the most popular Russian-language Era all-in-one package and support, tirelessly provided to players, as well as the translation of Advanced Classes mod.
Thanks to MoP for its battery plugin.dll, which helped me a lot during recruit dialog API development.
I would like to thank igrik for constant releases and updates of plugins, advices and help.
Download actual Era version
Install over Complete Collection or the Shadow of Death.
You can support the release of new versions via donation app or directly to bank card:
4496 5501 6577 3844 (Belarus, BPS-SBERBANK). Service: paysend.com
Quote: {{{ CHANGELOG }}}
Version 2.9.2
------------------------
[-] Release building software used to put older angel.dll into installer.
[-] Fixed bug: negative y-variables were reset even in non FU1..FU29999.
Version 2.9.1
------------------------
#small-fixes #antiviruses-heaven
[+] Replaced ToolsDEFka v1.0 with more feature rich DEFka 2.0.
[+] Replaced Virtual Pascal angel.dll stub with Delphi angel.dll stub.
[+] Added "ErmLegacySupport" option in heroes3.ini. If set to 1, compatibility with old ERM scripts will be better
at the cost of ~15% ERM performance decrease. Options forces local variables reset before each !?XX trigger, even
in DO-loops.
[-] Renamed ModsWoGEraPluginserm_hooker.dll to *.era.
Version 2.9.0
------------------------
#performance #erm-speed-up #erm-stability #era-evolution #recruit-dialog
[@] Special thanks to HMM 3 fans, who supported the project with donations: Andarium (++) and a few other players (+).
[@] Special thanks to daemon_n for maintaining main Russian Era all-in-one package, script writers and players support,
Advanced Classes Mod translation and more.
[@] Special thanks to MoP. His Battery.dll plugin was used during Recruit Dialog API development.
[@] Special thanks to igrik for his constant plugins updates, advices and help.
[+] Speeded up ERM triggers in 2-10x times. There is no more performance penalty, depending on total triggers number.
Whether there are 5 total triggers or 5000, trigger search time is almost linear. Triggers location in memory and search mechanism
were optimized.
[!] Backward incompatible change: local variables saving and initialization is performed before the first trigger of particular type (like !?CM2)
and restoration is performed after the last trigger of particular type. It means, that code must not depend on local vars initial zero/empty value.
Some original WoG scripts need corrections.
[+] Rewritten trigger execution procedure. Features:
- Up to 32 nested IFs support.
- Each trigger/function from now has its own local set of y1..y100, e1..e100, z-1..z-10, x1..x16, f996..f1000, v997..v1000 variables.
Flags and v-variables are automatically set before first trigger of the same type execution.
x1..x16 usually hold trigger/function paremeters and should be changed only when you know, what you are doing.
- Optimized !!DO support. Variables saving/restoring is performed only once before !!DO-loop and after.
[+] Rewritten !!DO implementation. Now it's lightning fast (10x), almost same as manual loop with SN:G.
- DO parameters are set only once before the first iteration.
- DO:P? syntax is supported. Get-parameters will have 0 value at first iteration and their final value will be returned after the last iteration.
Example: !!DO(Test)/0/100/1:P?y1; y1 will be set to x1 value after last loop iteration, x1 initial value is 0
- !!DO:P= syntax is not supported anymore.
- Backward iteration is now supported. !!DO(Test)/100/-10/-1; will iterate 111 times from 100 to -10.
[+] v1..v10 and z1 variables are restored after OnKeyPressed event automatically. No keyboard fix scripts is necessary anymore.
[*] Negative y-variables are DEPRECATED and are subject to be removed in the future. Do not use them in new scripts.
They are saved and restored for any event, except !?FU1..!?FU29999. Thus some WoG scripts used them as local variables (positive y-vars are better),
and some scripts used them as return values from FU1..FU29999 functions (like global variables).
[+] SN:E always assigns both v1 and e1. No need to add 4 to calling convention in order to receive float result.
[+] SN:X works directly with x1..x16 now. Parameters for Era triggers are assigned to x1..x16. Thus you can write:
!?FU(OnKeyPressed)&x1=27; handle ESC key (code 27)
!!VRx2:S1; disable default reaction
[+] Era 1.9 was fully ported to Delphi. Angel.dll is left as deprecated stub only. Antiviruses no longer complain on angel.dll.
[+] All SN receiver commands are now handled by Era.
[+] ERM Hooker was updated to 2.1 version and is now part of Era package. Mod makers should not include it in their mods.
[+] Added new event "OnLoadHeroScreen". It occurs just before Hero Screen is drawn for specific hero: after "OnOpenHeroScreen"
event and during each switching in the same dialog between different heroes. Event also occures during RMB on hero in tavern
and in battle (with special plugins). The event can be used to change hero skills/info/troops only for hero screen dialog.
[+] Added "OnRecruitDlgMouseClick", "OnTownHallMouseClick" and "OnKingdomOverviewMouseClick" events. All parameters
can be obtained via !!CM, as usual. Default reaction can be disabled.
[+] Improved SN:S / !?SN pair. Sound name is always copied to a separate buffer before calling PlaySound.
Previously the following code used to produce no sound:
!!VRz1:S^test.wav^;
!!SN:Pz1;
!?SN;
!!VRz1:S^WTF^;
[+] OnBeforeHeroInteraction event has 3-d parameter (x3): "enable interaction". Set it to 0 to disable interaction.
[+] Added SN:F^era.dll or kernel32.dll exported function name^/...function arguments... for executing functions
with STDCALL calling convention. No more need to use SN:L... A... E... in most cases.
Example: !!SN:F^ReadStrFromIni^/^key^/^section name^/^Datatest.ini^/?z2;
!!SN:F^GetButtonID^/^testBtn^;
[+] Added ERM command for dynamical string interpolation (substitution of variables in string).
SN:I(string to interpolate)/?z#.
Command can be used for interpolating strings, obtained from external sources, such as ini-files
and SN:T, though its usage is recommended only for debugging/porting needs.
Example:
Use SN:T, UN:N6 or get input from dialog in z2.
Example z2 contents: '%Y5 %V996 test %Z5'
!!SN:Iz2/?z3; z3 now contains z2 contents with all variables substituted/interpolated
[*] Updated "Quick Savings" mod.
[+] Updated "wog native dialogs" plugin by igrik.
[+] Era.dll now exports 2 additional functions: GetArgXVars and GetRetXVars. Each one returns pointer to int[16].
The first set of values should be used as parameters for generated events. They are automatically copied to x1..x16
right on trigger execution start. The second array holds copied x1..x16 values after trigger execution and serve
as return values.
Example:
GetArgXVars()[0] = 1; // default reaction is enabled
FireErmEvent(100000); // call trigger 100000
int defReactionEnabled = GetRetXVars()[0]; // get "default reaction enabled" parameter final value
[-] Backward compatibility with plugins, adding new ERM receivers is broken. New API for regestering custom
ERM receiver handler is ready, only docs are missing for now.
[+] Added new receiver !!RD for managing recruit dialog and a few new events.
Whenever recruit dialog is created, an event "OnOpenRecruitDlg" is triggered with the following parameters:
x1 - selected/active monster slot (0..3)
x2 - flags/options. Combination of bits, controlling dialog behavior:
CLOSE_ON_BUY = 1; Dialog should be closed, when buy button is clicked. Used normally in towns
ir when there is only single recruit slot. Unset this flag to force use to manually close dialog.
AUTO_UPDATE_ADVMAP = 2; Adventure map screen should be updated after any recruit is hired (even when dialog is shown).
This flag is used during hiring recruits from adv. map dwellings, allowing player to see
new creature quantities in the right bottom info screen.
x3 - enable dialog = 1. Set to 0 to not show dialog at all.
When recruit dialog is closed, an appropriate "OnCloseRecruitDlg" is trigger without parameters.
When dialog slider is touched or active slot changed, recalculation of number of monsters to hire
and total costs is performed in "OnRecruitDlgRecalc" event. All parameters can be changed.
x1 - creature cost in gold
x2 - resource ID (0..5) or -1
x3 - resource cost
Dialog was modified to allow zero gold/resource cost.
When a few recruits are hired, "OnRecruitDlgAction" is triggered.
x1 - number of hired creatures. Read-only.
!!RD:C#slot/$type[/$num/$sourceId/#0 = use original number]; Configurate dialog
===============================================================================
#slot - dialog slot index (0..3)
$type - creature type to hire in specified slot or -1 for inactive slot.
$num - current number of creatures to hire. If the last parameter is 0, then it's original number
of monsters to hire, remembered right after "OnOpenRecruitDlg" event (get syntax only).
Number of creatures is usually directly binded to some source, like town creature dwelling.
Thus, settings this value in configuration phase, you change real creature quantity.
$sourceId - the source/memory, where available number of creatures is stored.
>> For existing towns on the map the following sourceId formula can be used:
Town ID * 14 + (town creature dwelling 0..6) + (7 for upgraded only), where Town ID is CA:U.
For instance, the source of second town on the map, 3-d upgraded dwelling is: 1 * 14 + 3 + 7 = 24.
>> If dialog is called with special, programmer-defined external sources, they will have the following IDs:
9000, 9001, 9002, 9003. For instance, mod maker implemented custom dwelling in town and has some memory,
where number of creatures for hiring is stored. Script writers will be able to see such sourceId as 9000.
>> Custom source. sourceId >= 10000. User-scripted implementation.
When custom source is used, unique memory block is allocated for it. Do not forget to set initial
value in "OnOpenRecruitDlg" and get final (remaining) value in "OnCloseRecruitDlg".
Same sourceId may be assigned to any number of dialog slots. All those slots will display same
creature quantity and update simultaneously. This is usefull for alternative creatures implementation.
Slots may have different creature types (and costs), but total amount of recuits is shared between all
slots.
SourceId is changed before applying new monsters number. Thus !!RD:C0/13/100/20000 will change
sourceId to 20000 (custom) first and then set monsters quantity to 100 archangels, without changing
original dwelling/object/etc population.
You can set slot 0 and 3 types to some values and slot 1 and 2 types to -1. Free space will collapse and user
will see only two slots.
Dialogs without working slots (creature type <> -1) will not be shown.
Example: !!RD:C2/?y3; y3 is creature type is 3-d dialog logical slot
!!RD:S#offset; Shift slots
===============================================================================
#offset - shift all slots by this value to the right (positive number) or to the left (negative number).
If slot goes outside of 0..3 indexes, it disappears.
Example: given 0..1 slots with normal and upgraded creatures and any sourceIds. Task: prepend two custom slots
with angels/archangels to them.
!!RD:S2 C0/12/2/12345 C1/13/2/54321;
Before:
[creatures A] [creatures B] [empty slot] [empty slot]
After:
[2 angels] [2 archangels] [creatures A] [creatures B]
Shifting is performed will all settings (number, type, sourceId) preserved.
Example 2: remove first slot with upgraded monsters and leave non upgraded only.
!!RD:C0/?t/?t/?y2; y2 is sourceId for slot 0, t - temp global quick var
!!VRy2:%14; y2 - is dwelling index 0..13, 7+ for upgraded
!!RD&y2>=7:S-1; shift one slot to the left if the first slot is upgraded town dwelling
!!RD:F#visualSlot/?$logicalSlot; Convert visual dialog slot index to logical one (used with !!RD:C)
===============================================================================
#visualSlot - visible slot index (0..3)
?$logicalSlot - logical slot index (0..3 or -1)
Command used together with mouse handling in recruit dialog. Visible slot IDs are monotonically
increasing and need to be converted to logical slot IDs.
Example:
[creature A] [empty slot] [empty slot] [creature B]
is displayed as
[creature A] [creature B], where creature B has visual slot index 1 and logical slot index 3
!!RD:I?$dialogId[/?$townId/?$dwellingId/?$selectedSlot]; Get current dialog Info
===============================================================================
?$dialogId - Unique recruit dialog ID. Used to distinguish between nested dialogs (yep, it's possible). Reusable.
?$townId - ID of town, for which dialog is opened or -1.
?dwellingId - ID of town dwelling, for which dialog is opened or -1. 0..6 non upgraded, 7..13 for upgraded.
Horde buildings (+X population) are treated as dwellings, they influence.
?$selectedSlot - Active logical slot index.
!!RD:M#var/$value; Access current recuird dialog associative memory
===============================================================================
#var - either integer number or unique string. Same as SN:W
$value - get/set/modify variable value
Commands provide fully-featured SN:W equivalent with memory, allocated for each created recruit dialog.
Memory is released after "OnCloseRecruitDlg" for each dialog.
Example:
!!RD:M^acm.mapX^/v998 M^acm.mapY^/v999 M^acm.mapZ^/v1000;
!!RD:M^mithril^/*2;
!!RD:O#townId/#dwellingId/#targetType/#targetId[/#dlgFlags]; Open new recruit dialog (previous dialogs will remain in the background)
===============================================================================
#townId - ID of town to open dialog for or -1. Town will be used as slots source.
#dwellingId - ID of town dwelling (0..13) or -1. Dwelling will be used as slots source.
#targetType - Type of the destination for hired recruits:
RECRUIT_TARGET_TOWN = 0;
RECRUIT_TARGET_HERO = 1;
RECRUIT_TARGET_CUSTOM = 2; Destination will be determined by Lua/ERM script and handled manually
#targetId - ID of target: hero ID, town ID or special value for Lua/ERM script.
#dlgFlags - Combination of CLOSE_ON_BUY and AUTO_UPDATE_ADVMAP flags. See "OnOpenRecruitDlg" event.
Don't set this parameter of using native/default settings.
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
RerryR
Promising
Supreme Hero
Researching Magic
|
posted December 19, 2019 11:53 PM |
|
Edited by RerryR at 23:55, 19 Dec 2019.
|
Great release and big support to the whole heroes community. The new release already works very well, the optimization of code is noticeable! :) I hope new and cool mods will follow. Thank you very much.
|
|
Bersy
Honorable
Supreme Hero
|
posted December 20, 2019 01:31 AM |
|
|
|
majaczek
Supreme Hero
Work at Magic Dimmension
|
posted December 20, 2019 12:10 PM |
|
Edited by majaczek at 12:21, 20 Dec 2019.
|
sadly the Secondary Skills scrolling attached with ERA 2.9.2 doesn't work there may be some more incompatibilities
EDIT: it's probably problem with HE-1 syntax
|
|
Orc
Famous Hero
|
posted December 20, 2019 01:24 PM |
|
Edited by Orc at 13:26, 20 Dec 2019.
|
New Bug Found + 1 comment
There is a bug that happened to me 2 times now (usually doesnt happen)
when my computer enemy retreat from battle, it shows me that the enemy hero has leveled up.
My hero still does gain the XP, and also gain primary stats, but will gain no secondary stats.
https://drive.google.com/open?id=1Bd60tuqvOTCj0IE9Lz2XJeGluGL9we6p
the mods used here were:
WoG
BattleSpeed
Spells Description
ERA scripts Eng
Hero Advanced Level Up
Bad Luck 2
Extra Cast Script
maybe also Secondary Skills Scrolling
the plugins are just the default plugins + unlimited SS learned.
this bug happened to me 2 times only, one time in 2.46 (hack and slash campaign) and one time in 2.88
both had unlimited SS on.
majaczek said: it seems hero receiver is buggy in era2.9.1
EDIT: Example - using secondary skill scrolling mod here
EDIT: Same in 2.9.2
aha, this seems very semilar to the problem I posted yesterday
|
|
Bersy
Honorable
Supreme Hero
|
posted December 20, 2019 01:29 PM |
|
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted December 20, 2019 03:29 PM |
|
|
Wonderful release
Thanks for all
|
|
Bersy
Honorable
Supreme Hero
|
posted December 20, 2019 04:10 PM |
|
|
|
lea
Adventuring Hero
|
posted December 20, 2019 07:21 PM |
|
Edited by lea at 19:22, 20 Dec 2019.
|
Orc said:
lea said: AFAIK HD+ functionality is supported only for HotA and vanilla SoD
vaguely remember it mentioned in changelogs of HDmod
I guess you may try your luck with even older version of HDmod (3.x maybe?)
it must be possible. This random russian guy with YouTube
if you mean hotkey for making single-creature stacks with one click then it is not part of HD+ AFAIK
author of HDmod disabled it by default for WoG/Era because it does not work correctly with stack experience
it can be enabled from HDmod's launcher (check tweaks tab, look for "<UI.QuickArmyManagementMode> {0, 1} = 0" and change last number in this line to 1)
if you want to play with stack experience then there is an Era mod that provides similar functionality, forgot how its named
|
|
Maurice
Hero of Order
Part of the furniture
|
posted December 20, 2019 08:09 PM |
|
|
QP assigned for the amazing update!
____________
The last Reasonable Steward of Good Game Design and a Responsible Hero of HC. - Verriker
|
|
Orc
Famous Hero
|
posted December 20, 2019 08:21 PM |
|
Edited by Orc at 20:35, 20 Dec 2019.
|
what does your neutrals script exactly do?(I read the readme file its vague)
For now, I tried the two scripts (neutral stack size and neutral stack bonuses)
I noticed that stack size was ok, but stack bonuses is too strong, that many times AI attacks them but then gets defeated (the AI undersetimate neutrals strength, espesially dwellings have 50 guards he think its only 1 guard)
I played one game and the neutrals are stronger than the AI (even for me), its like the neutrals are my main enemy.
not sure if that can be solved, or maybe another script will fix this (like it buffs the AI or something)
buffing the AI army is not good enough because the neutrals will still have better stats.
also, I dont use experience in my game
is there any advice on how I should go about this? maybe I should enable some other scripts too that buff the AI? or download some AI mod that makes the AI not attack neutrasl like that?
any suggestion?
Bersy said: You are welcome. In Era+ package Heromant added town from Hota, but it's still in Russian, afair.
where to download this? :3
can I install this mod/package on my English Era II?
|
|
Bersy
Honorable
Supreme Hero
|
posted December 20, 2019 09:56 PM |
|
|
|
Orc
Famous Hero
|
posted December 20, 2019 10:27 PM |
|
|
Bersy said: Thanks, Maurice.
Quote: where to download this? :3
https://vk.com/doc-118013293_518330999
Currently Era 2.8.8 is supported only and mod is not translated, though daemon_n is thinking about it.
im using Era 2.88 now so I guess that will be good.
is there a mod for MGoG Fire ball cast?
|
|
Bersy
Honorable
Supreme Hero
|
posted December 20, 2019 10:38 PM |
|
Edited by Bersy at 22:42, 20 Dec 2019.
|
Era v2.9.3
[+] Improved "ErmLegacySupport" option. Negative z-variables are not local for classic FU1..FU29999.
Negative z-variables are not nulled on FU1..FU29999 enter and other quirks.
Old WoG scripts bug count decreased.
[!] Warning. Modern ERM scripts should not rely on any initial y+, y-, e+, e-, z- value. Assign them
before usage. In named functions and non-functional triggers y+, e+, z- variables are local to current trigger.
Use temprorary global z+ variables or SN:W to return string values from functions.
[+] x1..x16 are also printed during ERM vars dumping.
[*] Question in ERM error dialog is changed from "continue without dumping" to "dump ERM memory".
[*] IFs counter is now reset at each trigger start.
[-] Fixed bug: current hero was not set in a few ERM events.
Download
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
Mahno228
Tavern Dweller
|
posted December 21, 2019 08:19 AM |
|
|
Bersy said:
Era v2.9.3
[+] Improved "ErmLegacySupport" option. Negative z-variables are not local for classic FU1..FU29999.
Negative z-variables are not nulled on FU1..FU29999 enter and other quirks.
Old WoG scripts bug count decreased.
[!] Warning. Modern ERM scripts should not rely on any initial y+, y-, e+, e-, z- value. Assign them
before usage. In named functions and non-functional triggers y+, e+, z- variables are local to current trigger.
Use temprorary global z+ variables or SN:W to return string values from functions.
[+] x1..x16 are also printed during ERM vars dumping.
[*] Question in ERM error dialog is changed from "continue without dumping" to "dump ERM memory".
[*] IFs counter is now reset at each trigger start.
[-] Fixed bug: current hero was not set in a few ERM events.
[url=https://mods.hmm35.ru/Era%20Latest.exe]Download[/url]
Заметил,что нет совместимости с тифоном... Когда в городе хочешь купить существои и нажимаешь на него, но не выскакивает, окно покупки... Та же хрень с ветками в жилищах. Нажимаешь,чтоб выбрать ветку, но ничего не происходит
____________
|
|
Mahno228
Tavern Dweller
|
posted December 21, 2019 08:42 AM |
|
|
Bersy said:
Era v2.9.3
[+] Improved "ErmLegacySupport" option. Negative z-variables are not local for classic FU1..FU29999.
Negative z-variables are not nulled on FU1..FU29999 enter and other quirks.
Old WoG scripts bug count decreased.
[!] Warning. Modern ERM scripts should not rely on any initial y+, y-, e+, e-, z- value. Assign them
before usage. In named functions and non-functional triggers y+, e+, z- variables are local to current trigger.
Use temprorary global z+ variables or SN:W to return string values from functions.
[+] x1..x16 are also printed during ERM vars dumping.
[*] Question in ERM error dialog is changed from "continue without dumping" to "dump ERM memory".
[*] IFs counter is now reset at each trigger start.
[-] Fixed bug: current hero was not set in a few ERM events.
[url=https://mods.hmm35.ru/Era%20Latest.exe]Download[/url]
Нет совместимости с тифоном...Когда заходишь в город,хочешь купить существ и нажимаешь на него,то окно покупки не вылазит -ничего не происходит...Та же хрень, когда строишь жилища по 2 веткам-нажимаешь,чтоб выбрать ветку и ничего не выбирается
____________
|
|
|
|