|
|
xericsin
Famous Hero
|
posted January 26, 2020 07:00 AM |
|
|
Bersy said: Are you sure? BM:S simply return value from monster structure. It includes any spell effect, it's final value.
|
|
Bersy
Honorable
Supreme Hero
|
posted January 26, 2020 11:26 AM |
|
|
Thanks, marked in todo to look at.
test update
[+] SN and RD receivers syntax was improved. Now any command can use string concatenation (like d&z2),
integer modification (like d*5), SN:W string variable in the form of [?]s^var name^, SN:W integer
variable in the form of [?]i^var name^.
[+] Added support for SN:W variables interpolation inside ^...^. %S(var_name) for string values, %I(var_name)
for integer values. The total length of interpolated string must not exceed 1 MB.
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
Bersy
Honorable
Supreme Hero
|
posted January 27, 2020 01:42 AM |
|
|
|
xericsin
Famous Hero
|
posted January 27, 2020 07:38 AM |
|
|
Bersy said: xericsin, Era 2.9.6 will be released today, I hope.
[+] Added new ERM command BM:U6/?$, returning stack actual speed, including slow spell effect.
Note, BM:S always returns speed without slow spell effect.
Great!
And can you show some examples of the new SN:W syntax?
|
|
Bersy
Honorable
Supreme Hero
|
posted January 27, 2020 01:02 PM |
|
|
Just tests:
!!SN:W^name^/^bers^ W^hero^/^mighty ^ W^hero^/d&s^name^ W^hero^/?z2;
!!IF:M^%Z2^;
!!SN:W^sum^/5 W^sum^/d*i^sum^ W^sum^/?y2;
!!IF:M^%Y2^;
!!SN:M0/1/0/0 M0/d*3 M0/2/i^sum^ M0/2/?y2;
!!IF:M^%Y2^;
!!IF:M^%S(hero) %S(name) %I(sum) Percent: %%. You have %I(gold) gold %S %S(name^;
d+, d-, d*, d:, d& (string concatenation)
s^var name^, i^var name^, ?s^var name^, ?i^var name^, %S(var name), %I(var name)
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
Bersy
Honorable
Supreme Hero
|
posted January 27, 2020 07:57 PM |
|
Edited by Bersy at 19:59, 27 Jan 2020.
|
Version 2.9.6
[+] SN and RD receivers syntax was improved. Now any command can use string concatenation (like d&z2),
integer modification (like d*5), SN:W string variable in the form of [?]s^var name^, SN:W integer
variable in the form of [?]i^var name^.
Examples:
- Concatenate string with existing variable and display result.
!!SN:W^report^/^Today we met a few strangers. They were^;
!!SN:W^report^/d&^ orcs^;
!!IF:M^%S(report)^; Today we met a few strangers. They were orcs
- Get current MP3 theme into named variable
!!MP:C?s^theme^;
!!IF:M^Current theme is %S(theme)^;
- Multiply number of creatures in the first slot of recruit dialog by 10 and display it
!!RD:C0/?t/d*10; type not changed, number multiplied by 10
!!RD:C0/?t/?i^numMons^;
!!IF:M^There are %I(numMons) creatures to hire^;
[+] Added support for SN:W variables interpolation inside ^...^. %S(var_name) for string values, %I(var_name)
for integer values. The total length of interpolated string must not exceed 1 MB.
[+] Replaced Heroes 3 random generator routine with world-wide known Mersenne Twister, generating
qualitative uniformly distributed sequences with huge periods.
[+] Added new ERM command BM:U6/?$, returning stack actual speed, including slow spell effect.
Note, BM:S always returns speed without slow spell effect.
[*] VR:T is deprecated and is equal to VR:R now. To get current time in milliseconds the following code can be used:
!!UN:C6529876/4/?t; t = timeGetTime function address
!!SN:Et/1; v1 = result
Use VR:R0/#new_seed to reseed random number generator.
Download
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
DarkAtom
Adventuring Hero
|
posted January 27, 2020 09:13 PM |
|
|
Bersy said:
Version 2.9.6
[+] SN and RD receivers syntax was improved. Now any command can use string concatenation (like d&z2),
integer modification (like d*5), SN:W string variable in the form of [?]s^var name^, SN:W integer
variable in the form of [?]i^var name^.
Examples:
- Concatenate string with existing variable and display result.
!!SN:W^report^/^Today we met a few strangers. They were^;
!!SN:W^report^/d&^ orcs^;
!!IF:M^%S(report)^; Today we met a few strangers. They were orcs
- Get current MP3 theme into named variable
!!MP:C?s^theme^;
!!IF:M^Current theme is %S(theme)^;
- Multiply number of creatures in the first slot of recruit dialog by 10 and display it
!!RD:C0/?t/d*10; type not changed, number multiplied by 10
!!RD:C0/?t/?i^numMons^;
!!IF:M^There are %I(numMons) creatures to hire^;
[+] Added support for SN:W variables interpolation inside ^...^. %S(var_name) for string values, %I(var_name)
for integer values. The total length of interpolated string must not exceed 1 MB.
[+] Replaced Heroes 3 random generator routine with world-wide known Mersenne Twister, generating
qualitative uniformly distributed sequences with huge periods.
[+] Added new ERM command BM:U6/?$, returning stack actual speed, including slow spell effect.
Note, BM:S always returns speed without slow spell effect.
[*] VR:T is deprecated and is equal to VR:R now. To get current time in milliseconds the following code can be used:
!!UN:C6529876/4/?t; t = timeGetTime function address
!!SN:Et/1; v1 = result
Use VR:R0/#new_seed to reseed random number generator.
Download
I guess this completely renders y-vars useless :) Finally ERM can be used in the same way as all other languages!! Good job!
____________
"If you get scared of doing what's right you might as well lay down and die" - Wulfstan, Heroes of Might and Magic V: Hammers of Fate
|
|
Bersy
Honorable
Supreme Hero
|
posted January 27, 2020 11:20 PM |
|
|
|
Bersy
Honorable
Supreme Hero
|
posted January 31, 2020 09:48 PM |
|
|
Version 2.9.7
[+] Added possibility to query function arguments count for functions, called via FU:P, FU:D, DO:P.
New command !!FU:A?$ returns number of x-arguments (not including x16 for DO:P), received by function.
This mechanism allows to write functions with optional parameters (parameters with default values) and
functions with variadic arguments number.
Example 1:
!?FU(KillHero);
; Kills specified hero. Demonstration of optional parameters.
; [x1] - hero ID. Optional. -1 by default
!!FU:A?k; get number of function arguments
!!VRx1&k=0:S-1; set x1 to -1, if no arguments passed
!!HEx1:K; killed hero
!?CM0;
!!FU(KillHero):P; kill current hero
!!FU(KillHero):P155; kill Xeron
Example 2:
!?FU(sum);
; Calculates sum of all passed arguments.
; x1..x[n] - arguments to sum
; x[n+1] - result
!!FU:A?k; count function arguments
!!VRxk:S0; set result to 0
!!VRi:S0;
!!SN&i>=k:G[end-for]; repeat k times
[:for]
!!VRxk:+xi; add next argument value to result
!!VRi:+1;
!!SN:G[for];
[:end-for]
!?CM0;
!!FU(sum):P100/200/300/400/?s; get 100 + 200 + 300 + 400 into "s" quickvar
!!IF:M^%Vs^; displays "1000"
[+] VR:C now supports v, y, x and w-variables.
[+] Improved MR:N and OnBattleRegeneratePhase:x1. Now stack ID is returned more accuratly. Thanks to Heromant.
[+] Small improvements of ERM Editor. Better 'for'-loop snippet, syntax fixes, 'iff' for !!IF, etc.
[*] Map resources, like ERM or Lua scripts were previously located in Maps/[MapName] directories. In order
to support HD-mod maps grouping into folders, the location was changed to Maps/Resources/[MapName].
[-] Fixed wrong/unstable round, used by WoG for creature autosummoning via creature experience system.
[-] Fixed bug: w-variables in SN/MP/RD were always related to current hero.
[-] VR:R will no more crash on invalid value.
Download
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted February 02, 2020 01:25 PM |
|
|
zmudziak22 said: Valery, seers uncovered doesnt work with era 2.9 versions. It has problem ERA API(error says it need era 2.46 to work).
Bersy, can you please look into?
Seer hut mod
|
|
gamemaster
Adventuring Hero
|
posted February 02, 2020 05:40 PM |
|
|
As far as i can see Pandora's API destinations are changed by latest era.
First occasion is related to (AdvErm.Pas)
// Use direct handler address from Cmd.Params[15] instead of linear scanning
Core.p.WriteDataPatch(Ptr($7493A3),
...
Somewhere at that address Pandora make compare that are not same as 2.7.4 verson.
Probably other locations are problematic too.
By quick look that seems hard to fix up
Good thing is that there is no lot code in Pandora.
We will see what Bersy has to say
|
|
Bersy
Honorable
Supreme Hero
|
posted February 03, 2020 12:08 AM |
|
|
Yes, new receivers by gamecreator should be rewritten a bit, but the author has gone away. Now Era provides function RegisterErmReceiver similar to the one, written by plugin author.
I have latest sources of pandora:
https://dropmefiles.com/66O36
But it seems, that gamecreator forgot to put pandora api main file inside. Of course, we could try to modify compiled Pandora's API.era library. Thus the task is solvable, but requires effort )
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted February 03, 2020 12:17 AM |
|
|
To say the truth, that was my first mod to use in my everyday list, it makes navigating through large maps so easy and clear. Would be a pity to have it disabled by new versions
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted February 03, 2020 03:59 AM |
|
|
Also, in my opinion, why not set a definitive Era II version (2.8?) in which all written mods work without errors, and from there start Era III, where you can add all the changes you want, without carrying about breaking compatibility with the 150 existing mods?
Because as I see now, compatibility error reports are coming in increasing rate, then what about mods whose authors are gone or inactive, who checks for them still working? Something is wrong here.
|
|
lea
Adventuring Hero
|
posted February 03, 2020 08:45 AM |
|
|
Salamandre said: Also, in my opinion, why not set a definitive Era II version (2.8?) ...
isn't version 2.47.9 already serving such a purpose?
apart from the fact that it is not very well known as such
|
|
RerryR
Promising
Supreme Hero
Researching Magic
|
posted February 03, 2020 10:06 AM |
|
Edited by RerryR at 10:12, 03 Feb 2020.
|
Given the number of new features in the current ERA releases, it would definitely be justifiable calling it ERA III.
From my experience the 2.88 was stable.
It is likely that some error reports came from ERA releases 2.9X which still had little issues, that are now maybe fixed. Overall I don't think the situation with mods is bad currently, most do work. Of course not every player updates constantly.
It is important that people test the new releases to find bugs because there will always be some, that is just how it is with every new release of any mod and part of the evolution process of a software. Nobody can do the testing alone. Not sure the testing would happen to the same extent if there was a ERA III Beta.
Let us see what Berserker still has in the stores for us in the future
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted February 03, 2020 10:55 AM |
|
|
I disagree, when you already have 150 mods done and not a single one new in the work, you prioritize the compatibility. I already had to rework syntax to all interface mods because they stopped reading the ini, then all my maps stopped working because the hook was now shipped with new era so conflict (I still didn't update the packages, no time so they still not working), then fortunately someone reported the BA trigger being broken, then now API, it clearly shows that it needs serious testing, who will do?
Not me, I am out of business.
____________
Era II mods and utilities
|
|
Bersy
Honorable
Supreme Hero
|
posted February 03, 2020 11:49 AM |
|
|
Salamandre, 2.8.8 is the one, people need for old mods.
1) Leading slash in path was interpreted as path relative to game directory in previous Era VFS implementation, which was a bug. The right way for Windows is ".\relative path" or simple "relative path". '\x' is expanded by OS to "C:\x" or "D:\x". That's not my fault, bugs may be fixed some day.
2) gamecreator's plugin is a plugin without full source code. It's normal to be incompatible with engine, when engine evolves. Fortunately, gamecreator left sources for most parts of the code and wrote it in high level style, so there can be written a fix.
3) Era 2.9 improved ERM engine. 10x-15x speed increase for loops, higher-level constructions like !!re/!!br, fixed bugs with condition evaluation, added means for advanced functions, etc. It's the last branch, where ERM is developed.
Look, if no one plays and thus test new versions, no new versions appear and modding/community dies. For those, who prefer something old and stable there is always current - 1 branch. 2.8.8, for instance.
____________
Heroes 3 Era and everything for it. Releases folder for releases.
|
|
Bersy
Honorable
Supreme Hero
|
posted February 03, 2020 04:56 PM |
|
|
|
RerryR
Promising
Supreme Hero
Researching Magic
|
posted February 03, 2020 05:54 PM |
|
|
By the way what actually is "Pandora's API" and what can I do with it? Is it about the boxes or something completely different ^^?
|
|
|