Skip to content

Posts from A program for determining luck/morality in Heroes 3! Auto-translated

4.8 (4 ratings)
In reply to AlexSpl
User Avatar
#602
Auto-translated
AlexSpl;201457
.:: LMOracle 3.4 ::.

2) Added a damage monitor for the HoMM I 1.1 RU version;

Today, I started fully testing the damage monitor, and I have a few interesting observations.

Testing was conducted without specifying specific parameters for different modes, i.e., before each attack of my monster, I simply set one of the battle modes: "Without retaliation," "With retaliation," or "Without attack."

With morale and luck at 2 and 3, the program worked without errors and provided clear results for morale and luck. But as soon as morale was 1 and luck was 1, it was 50/50. I wonder why? :)

Tomorrow, I will test with all parameters specified for different modes. I will share all my observations.

P.S. A big request: please create a small manual for the program, which can be included as an attachment in any format convenient for you.

Sincerely, VDV_forever
Единый справочник по Героям Меча и Магии

ТУРНИРЫ ПО ГЕРОЯМ 1!:smile13:
User Avatar
#603
Auto-translated
2VDV_forever: When attacking with a counterattack, it is also necessary to specify the exact number of units in the enemy squad that WILL be able to retaliate after the attack (double-click on "Defender"). The damage monitor should help determine this number. Also, all other parameters should be considered, as they affect not only the damage but also the morale. If the parameters are set incorrectly, the morale will be predicted incorrectly. I would be grateful for testing.

P. S. The new version will be available by the end of the week.
#604
Auto-translated
Then all the settings in the ini file should be reset as well. I'll do that.
Settings can be stored in the ini file, but I would like to have several files to store different hero combinations and be able to load any of them. For example, load the "runners," then the "strongmen," and then the "jumpers."
If there is only one setting, then only one combination of heroes can be stored.
In reply to Монца
User Avatar
#605
Auto-translated
Dear AlexSPl!

1) It has been determined that under no circumstances, in battle, while remaining in one place (by pressing the spacebar), will it be possible to predict the outcome of morale and luck, as they simply won't occur!:smile01:

2) Sometimes the program malfunctions when determining morale (2 and 3), and when it is equal to 1, it doesn't work at all. This leads to the question:
Am I setting the additional parameters correctly?

Example: I attack with 3 Djinns against Swordsmen (5 stacks of 6 each);
I select the "With retaliation" mode;
I enter the Defender.
I open the battle damage calculation program (by Monza)* and calculate that 3-4 Swordsmen will die from the first attack (which number should I choose). I set it to 3.
*From a mathematical point of view, how does your formula differ from Monza's formula for calculating damage in battle?
Minimum damage (for one Djinn or for 3?). I set it to 24 (for 1 Djinn)*;
Maximum damage (for one Djinn or for 3?). I set it to 36 (for 1 Djinn)*;
*3 Djinns inflict a maximum attack of 109, but in the LMOracle program, only a 2-digit value can be specified for this parameter.
Defense of the warriors in the attacking unit. I set it to 12, taking into account the hero's attack (9+3).

Am I doing everything correctly? Probably not.:o

3) Apparently, because of this, the Damage calculation is not accurate, and I really want to figure it out. In general, I feel that I can't understand this without a drink. In reality, if the damage inflicted on the enemy is calculated correctly, then this program will become an indispensable part of the game for any professional offline player.

4) How should I change the modes, or which of the examples is correct?

Example 1:
I attack with Centaurs and Gargoyles against Peasants and Ogres. Peasants die without retaliation, Ogres always retaliate.

Round 1: Gargoyles go -> I set the "With retaliation" mode and attack the Ogres;
Centaurs go -> I set the "Without retaliation" mode and kill the Peasants.

Example 2:
I attack with Centaurs and Gargoyles against Peasants and Ogres. Peasants die without retaliation, Ogres always retaliate.

Round 1: Gargoyles go -> I set the "Without retaliation" mode and attack the Ogres;
Centaurs go -> I set the "With retaliation" mode and kill the Peasants.
Setting the mode in this way for the next monster.

5) Could it be made so that the specification of additional parameters is set automatically by the program? This would greatly simplify things for players.

6) At the end of this year, it is planned to completely update the website www.handbookhmm1.narod.ru, which will include all known programs for Heroes 1 (created by HW users), including your program (with your permission). Therefore, it would be extremely desirable for the finished product of your work to be included in this update. I am currently working on this section of the handbook, which is why so many questions are arising. Later, there will be questions for our Monza, who created the equally useful and necessary program "hero digger."

Sincerely, VDV_forever
Единый справочник по Героям Меча и Магии

ТУРНИРЫ ПО ГЕРОЯМ 1!:smile13:
User Avatar
#606
Auto-translated
2VDV_forever:
:: Instructions ::
1) Start the battle;

2) Set the values for morale and luck in the "Settings" menu (Morale, Luck, Enemy's Luck);
Note: This step is very important, as incorrect luck values will result in incorrect damage calculation.

3) Select the mode "Without retaliation," "With retaliation," or "Without attack";

4) Set an additional condition (there is only one for HoMM I), if needed: "Double attack" (for elves, paladins, etc.);

5a) "Without retaliation" mode:
Double-click on the "Defender" label, and in the window that appears, enter the defense of the defending unit (you won't make a mistake about where to enter it). If the attacking unit is a ranged unit and is blocked, check the "Blocked" box (halves the damage for ranged units, ignored by all other units).

5b) "With retaliation" mode:
Here, you need to enter the following parameters (from top to bottom, left to right):
1) The exact number of warriors in the defending unit who CAN retaliate after the (first) attack of the attacking unit (the damage monitor will help you determine this number, see below);
2) The minimum damage of a warrior (unit) in the defending unit;
3) The maximum damage of a warrior (unit) in the defending unit;
4) [Already set] The attack of the warriors in your current unit;
5) The defense of the warriors in the defending unit.

Notes (5b):
1) The attack and defense parameters should be entered taking into account all bonuses (numbers in parentheses in the information window);
2) The "Blocked" checkbox is enabled in this mode because if ranged units attack with retaliation, it means they are blocked, and the other units ignore this checkbox.

The program signals with a green color before the turn of any unit about the possibility of morale and/or luck occurring under the given conditions.

Correct example:
Example 1:
I am attacking peasants and ogres with centaurs and gargoyles. The peasants die without retaliation, and the ogres always retaliate.

Round 1: The gargoyles move -> I set the "With retaliation" mode and attack the ogres;
The centaurs move -> I set the "Without retaliation" mode and kill the peasants.

When attacking a stack of ogres, set their (the ogres') minimum and maximum damage and defense. Look at the damage in the status bar (Damage). Estimate how many ogres will survive after the gargoyles' attack. Enter that number.
In reply to VDV_forever
User Avatar
#607
Auto-translated
VDV_forever;205866

2) Sometimes the program malfunctions when determining morale (2 and 3), and when it is equal to 1, it doesn't work at all. This leads to the question:
Am I setting the additional parameters correctly?

Example: I attack with 3 Djinns against Swordsmen (5 stacks of 6 each);
I choose the "With retaliation" mode;
I enter the Defender mode.
I open the program for calculating damage in battle (by Monza)* and calculate that 3-4 Swordsmen will die from the first hit (which number should I choose). I set it to 3.
*What is the mathematical difference between your formula and Monza's formula for calculating damage in battle?
Minimum damage (for one Djinn or for 3?). I set it to 24 (for 1 Djinn)*;
Maximum damage (for one Djinn or for 3?). I set it to 36 (for 1 Djinn)*;
*3 Djinns inflict a maximum hit of 109, but in the LMOracle program, you can only specify a 2-digit value for this parameter.
Defense of the warriors in the attacked unit. I set it to 12, taking into account the hero's attack (9+3).


It seems I'm doing everything correctly, but it's not working...:(
Tomorrow I will test it again. :smile01:

I also highlighted the unclear points in bold:o

Sincerely, VDV_forever
Единый справочник по Героям Меча и Магии

ТУРНИРЫ ПО ГЕРОЯМ 1!:smile13:
User Avatar
#608
Auto-translated
2VDV_forever: It is necessary to specify the minimum and maximum damage of a swordsman (not a djinn).
Montza's formula provides an excellent approximation, but it is not suitable for accurate calculation.
3-4 swordsmen will die... See the damage in the status bar and you will find out not the range, but the exact number.
For example, we attack 10 hydras, let the damage be 151 HP. This means that 2 hydras will die. We write the number 10-2=8 in the large window.

To avoid misunderstandings, I will add that the program finds the number of warriors in the attacking squad itself, as well as the minimum and maximum damage, and the attack. The parameters of the attacked (except for defense) are needed to predict morale. Since the number of changes in R in Heroes I depends not only on the number of responding units, but also, strangely enough, on the damage! Moreover, this number is not limited to ten, as in "Heroes III".

P. S.
Minimum damage (for one djinn or for 3?). I set 24 (for 1 djinn)*;
Maximum damage (for one djinn or for 3?). I set 36 (for 1 djinn)*;

The problem is probably here. Instead of 24 and 36, try specifying 4 and 6 (I do not recommend testing on djinns due to the chance of halving the enemy).
In reply to AlexSpl
User Avatar
#609
Auto-translated
Dear AlexSPl! Having thoroughly explored this truly amazing program, I would like to express my sincere gratitude to you for the tremendous work you have done for the fans of the 1-3 game series! Everything works!

But, as you know, appetite comes with eating.

1) The damage monitor is simply awesome; now, thanks to it, you can accurately determine how much damage an attacking unit will inflict on a selected enemy unit. For difficult and tedious battles, this is often a decisive factor, and battles fought "blindly" had to be replayed again and again until the necessary damage was inflicted on the enemy! Now, this process will make life much easier for all of us. I highly recommend this program to those who haven't tried it; you won't be able to tear them away from it.

2) The morale prediction will be 100% accurate if, before each action of a monster in the attacking side's unit, you specify the parameters based on which the action will be performed. That is, if you set the "With retaliation" mode, you must specify all the necessary additional parameters in the "Defender" field, and then you must attack a unit with retaliation, and not skip a turn, for example. With a morale of +1, if you make a mistake even once (especially with the mode), and then start specifying the modes correctly, the program may not predict the morale!

3) The program is very convenient to use when a player attacks a unit of neutral monsters with one unit (5 stacks of identical monsters on the enemy side). Then, you only need to change the calculated number of warriors in the attacked unit who will be able to retaliate after (the first) attack of the attacking unit. But when attacking an enemy hero, you have to specify all the parameters for different modes from scratch for each action of the player! This is not very convenient, so I suggest (if this is possible at all) adding 5 windows to the "Defender" tab, for each stack of the enemy, and at the beginning of the battle, specify the main parameters for each:
- Minimum damage of a warrior (unit) in the attacked unit;
- Maximum damage of a warrior (unit) in the attacked unit;
- Defense of warriors in the attacked unit.
Then, all that remains is to select the attacked stack, determine the number of units in the stack that will be able to retaliate after the attack using the monitor, and change only one parameter in the window of the "Defender" tab for the stack that is going to be attacked!

4) Special thanks for the MP monitor and the "Find" tab! Very convenient.

5) Will you be developing a Diplomacy Oracle for Heroes 1 in the future? Diplomacy in Heroes 1 is the most trivial; that is, the recruitment of monsters does not depend on the presence of similar troops in the hero's army, it does not depend on the morale of the army, but depends exclusively on the total strength of the hero's army.

Sincerely, VDV_forever
Единый справочник по Героям Меча и Магии

ТУРНИРЫ ПО ГЕРОЯМ 1!:smile13:
User Avatar
#610
Auto-translated
If the morality is +1, and you make a mistake even once (especially with the settings), and then start entering the settings correctly, the program might not predict the morality!
Could you elaborate?
In the case where you attack an enemy hero, you have to set all the parameters for different settings from scratch for each player action! This is not very convenient, so I suggest (if it is possible at all) to introduce 5 windows in the Defender tab, for each enemy stack, and at the beginning of the battle, specify the main parameters for each.
I'm implementing it, but differently. I thought this part of the "traffic light" wouldn't be of interest to anyone ;)
5) Will you consider adding a Diplomacy Oracle for Heroes 1 in the future?
Yes, if it is in demand :)
In reply to AlexSpl
User Avatar
#611
Auto-translated
AlexSpl;206067
Could you elaborate?

With a hero's morale at +1, if they make even a single mistake when setting a parameter during a battle, I sometimes observe a malfunction in the program's algorithm, meaning it incorrectly predicts the morale. This doesn't happen with morale +2 and +3. So, sometimes you can even avoid setting parameters altogether, and the program will still correctly predict the morale.
I'm continuing to test it. :)
[/QUOTE]
AlexSpl;206067

I'm implementing it, but in a different way. I thought this part of the "traffic light" wouldn't be of interest to anyone. ;)

We'll be eagerly waiting. :smile54:

Are you kidding? Our "hero" players are just too lazy to figure things out, but once they finally get their hands on this product and experience all its benefits, they
will hardly be able to play a tournament aiming for the optimal result without this program afterward! :smile26:
AlexSpl;206067

Yes, if it's in demand. :)

Scouting for diplomacy in Heroes 1 takes a lot of time, so this is very much in demand! :smile41:

I imagine launching the program, starting a game, right-clicking on a neutral monster stack, and the program in the system tray tells you: the monsters are ready to join your army, with your army's strength at 457! Awesome! :p

Sincerely, VDV_forever
Единый справочник по Героям Меча и Магии

ТУРНИРЫ ПО ГЕРОЯМ 1!:smile13:
User Avatar
#612
Auto-translated
If a hero has a morale of +1 and makes a mistake when setting a parameter during a battle, I sometimes observe a malfunction in the program's algorithm, meaning it incorrectly predicts the morale. This doesn't happen with morale values of +2 and +3. Therefore, sometimes it's even better not to set the parameters at all, as the program will still correctly predict the morale.
Setting a morale value above zero, like luck, is only needed for signaling. If an error occurs, only the highlighting will disappear, but the numbers will still be displayed correctly.
User Avatar
#613
Auto-translated
.:: LM Oracle 3.74 ::.

1. Added the ability to search for skill combinations (up to eight);
2. Now, the color of the Hero's name in the list carries semantic meaning;
3. For Heroes I, the ability to enter the parameters of all enemy units has been added;
4. Now, the list of Heroes can be saved and loaded;
5. Convenient sorting in both directions;
6. Instructions are included.

Before building the tree, as well as before searching for a skill combination, I recommend minimizing the Heroes window, as in the unminimized state, the game loads the CPU by half.

Compare:
1) The time to build a tree to 20 levels with the game window unminimized is about 30 minutes, and with the window minimized, it is 5 minutes and 45 seconds.
2) The time to build a secondary skills tree (+15 levels, 32766 level-ups) for a level 1 Hero with the game window minimized on my machine is 8 seconds, and with the window unminimized, it is 32 seconds.

LM Oracle 3.74
In reply to AlexSpl
User Avatar
#614
Auto-translated
AlexSpl
2VDV_forever: Here are a couple of screenshots: *where the clouds are*

How did you manage to achieve this effect? I haven't been able to implement it in practice.

Best regards, VDV_forever
Единый справочник по Героям Меча и Магии

ТУРНИРЫ ПО ГЕРОЯМ 1!:smile13:
In reply to VDV_forever
User Avatar
#615
Auto-translated
2AlexSPL:
By the way, here are some observations:
1. The Oracle incorrectly predicts the skills of heroes from the Conflux.
2. The morale capture doesn't work quite correctly when dragons/phoenixes defeat two units.