Skip to content

Posts from Round table

5.0 (2 ratings)
In reply to zoog
User Avatar
10 years ago
Auto-translated
zoog
There is no penalty there; the hero is on a fly. Or do you mean converting 100 movement points into 141 on non-penalty terrain?

No, I mean that on the last step, the terrain penalty applies, regardless of the army composition, except in the case when you have pathfinding of the required level or expert flight.
10 years ago
Auto-translated
Okay, I understand now, I need to remember that. The physics engine states that "roads, army composition, and the Flight spell are not taken into account – i.e., the terrain penalty for the last step always applies," so it still needs to be fixed and fixed again).
User Avatar
10 years ago
Auto-translated
I was really surprised by this – I was playing as the Swamp faction, and there were 210 movement points. The hero walked diagonally along the road, and then took one step upwards on autopilot. In theory, under any circumstances, this should be 241 movement points, and after the first diagonal step, the movement points should have been completely used up. What's going on?!

By the way, it's likely that the autopilot couldn't first move upwards and then to the side, because it would have chosen the shortest path.

https://www.twitch.tv/aiwezo/v/71245295 time 6:10
User Avatar
10 years ago
Auto-translated
An ancient trick when playing as the Hive faction. The second-to-last move diagonally costs 100 movement points (assuming there's no pathfinding, of course). I even came up with this as a question for one of the old quizzes. Personally, I've been using this trick for a long time and regularly.

P.S. This trick doesn't work on other terrains with movement penalties.
In reply to =Lizard=
User Avatar
10 years ago
Auto-translated
=Lizard=
An ancient feature when playing as the Swamp faction. The second-to-last diagonal move costs 100 movement points (assuming there's no pathfinding, of course). I even came up with this as a question for one of the old quizzes. Personally, I've been using this trick for a long time and regularly.

p.s. This feature doesn't work on other terrains with movement penalties.

Wow :eek:

If you add up all the moves I could save, you could cross the entire map 10 times, just like a young Reddit user :smile35:
User Avatar
10 years ago
Auto-translated
I didn't know where to post my suggestion regarding the site, so I decided to do it here.
Basically, I suggest adding the game version (HotA/SoD/something else) to the reports for better clarity of the logs)
10 years ago
Auto-translated
PROger, if you've written even one report, you should have noticed this feature. In my opinion, it only hinders 90% of games; a simple checkbox like "played on a fan-made mod" would be enough.
In reply to zoog
User Avatar
10 years ago
Auto-translated
zoog
PROger, if you've written even one report, you should have noticed this feature. IMO, it only hinders 90% of games; a checkbox like "played on a fan-made mod" would be enough.
Yes, it's there, but for some reason, the entry isn't visible in the report itself.
10 years ago
Auto-translated
Here’s another hint: it’s sometimes more convenient (and always faster) to deploy 2-hex units in tactical mode by repeatedly pressing A + Space (or ESC). The downside of this method is that it requires good dexterity.
In reply to zoog
10 years ago
Auto-translated
zoog
Here's another hint: deploying 2-hex units on the battlefield is sometimes more convenient (and always faster) by repeatedly pressing A+Spacebar. The downside is that it requires good dexterity.
I haven't been deploying units any other way for a long time, because it's risky.
10 years ago
Auto-translated
Another fairly obvious move – [del]if the timer is running low[/del] always record the ground/air view (I use oCamPortable) and watch the opponent's turn. Recently, Graal found a bug this way on XL+U.
10 years ago
Auto-translated
For those who constantly confuse the Crypt and the Pyramid: the Mummy Pit has a flag.
10 years ago
Auto-translated
Oh, here's another mega-hint that will be useful even for dads:
Lingvo
castle
['ka:sl]
1. noun
1) castle, palace; etc.
In reply to zoog
User Avatar
10 years ago
Auto-translated
A bit of discussion on the technical side:
Wic
"technical details/mechanics" // "прожиг" -> "burn/breath attack" (common term for fire breath in same games) // "отдача" -> "retaliation" >A question about the AI, since you've dug deep into it — in what situations does the AI move without attacking even though it has the opportunity to do so?

Several types of such situations are known: when the AI doesn't want to take multi-retaliation, when it doesn't want to be hit by a retaliation burn, or when it doesn't want to burn its own units.

But sometimes (very rarely), situations occur where ordinary units behave this way against other ordinary units.
Sav
"moat/ditch" // "зыбучие пески" -> "quicksand" // "площадная атака" -> "area attack" // "круговая атака" -> "circular/cleave attack" >Melee attack target selection.

- If a moat kills no less than a quarter of the stack, then in principle, it considers the moat, as well as quicksand, to be impassable.

- A base value (a non-positive number) is calculated for each hex. This includes danger from the presence of a wall of fire and a moat; the danger of standing next to one's own stack if the enemy has an area attack or fire breath; the danger of standing one cell away from one's own stack with fire breath; the danger of standing on any hex where some enemy with a circular attack can hit the current stack along with someone else; as well as the danger of exposing oneself to a strike from an enemy stack that currently cannot reach anyone.

Evaluation of enemy strike values. For each enemy stack, the following is calculated:
- The number of rounds required to carry out an attack (reach the target).
- The value of the hex from which the attack is launched. Here, the base value of the hex is taken, and part of the strike information is added: the value of blocking shooters, the value of burning or hitting additional stacks with a circular attack, and a penalty for the enemy retaliating by burning or hitting additional friendly stacks with a circular attack. If the creature is large, the worst value of the two hexes it occupies is taken.
- The hex from which the target must be attacked (the most favorable in terms of rounds needed to reach is taken first, then the best by value, then the shortest path length (only for cavalry and champions — the longest)).
- Strike value. This takes into account the value of removing retaliation and the value of the exchange of blows itself (excluding burn and circular attack). For an inactive enemy (blinded, paralyzed, petrified), as well as a first aid tent and ammunition wagon, this value is always 0.
- Whether to attack or simply stand nearby. If the attacker is a harpy or harpie-witch, she will stand nearby if the strike value is less than the hex value. Other creatures will stand nearby if the strike value is less than 0 and their side is better than the opponent's in terms of shooting (this takes into account the number of shooters, offensive magic, and shooting towers). In all other cases, the stack will attack.
- Total attack value. This is the sum of the hex value and the strike value. If the stack decided not to attack but simply stand nearby, it equals just the hex value.

After the calculations mentioned above, the total value and the hex value are randomly changed by 25% in either an increase or decrease (both equally in percentage terms). Also, both values are divided by the number of rounds required to reach the target.

An enemy stack is completely ignored as an attack target in the following cases:
- It is impossible to reach it (in any number of rounds).
- The enemy is not in a castle, but the AI is defending the castle (meaning the AI's castle has no destroyed walls, all AI stacks are inside the castle, and the AI is better than the enemy at shooting).
- Another condition that contains a bug. For a single-cell creature, it is correct and looks like this: if the total attack value is less than 0 and the hex value is less than its base value (meaning the stack itself will suffer more from the strike than the enemy, and the enemy will also wound someone with a circular attack or burn), then the enemy is ignored. For a two-cell creature, the condition looks like this: the strike value is less than 0 and the hex value (as mentioned above, it is chosen as the minimum of the 2 hexes where the stack stands) is less than the base value of the hex where the tail of the stack stands. It is because of this bug that two-hex enemies do not move toward a wall of fire placed closely: the hex value is chosen as the minimum and accounts for the same wall of fire where the head will stand, while the base value of the tail contains no wall of fire. But if the total attack value is positive (for example, there isn't just one fairy behind the wall, but a more serious stack, and the wall doesn't kill that many) — then the AI will move toward the wall, which periodically surprises players.

Among all targets, the best is chosen as follows: an active stack is better than an inactive one; then by the minimum number of rounds needed to reach the target (the fewer, the better); then by total value (the higher, the better), then by the lost health of the last creature in the stack (the more, the better), then by path length to the target (the shorter, the better).

Furthermore, if a Faerie Dragon, Archangel, or Abyss Lord can and sees sense in casting spells (the spell value is greater than the total value and hex value of the best stack) — they always cast instead of attacking. An Ogre Mage and Master Djinn (as well as a Satyr) cast only with a 30% probability.

If the AI has chosen the best enemy:
If the AI believes it is better to simply approach the best enemy, it moves.
If the total value is negative and less than the hex value, while the attacker is not a summoned elemental and the attacking side is better than the opponent in shooters — then if the enemy cannot hit with an area attack or burn and there is an opportunity to protect its own shooter, it goes to protect.
Otherwise, it attacks the best enemy.

If the AI ignores all enemy stacks:
If it is not attacking a castle, the enemy cannot hit with an area attack or burn, and there is an opportunity to protect its own shooter — it goes to protect.
If it is not attacking a castle and not protecting shooters — it moves toward the best hex by value among those it can reach.
If it is attacking a castle — it moves as close as possible to the wall (but does not enter the moat).

Thus, a two-cell stack may not attack in a situation similar to the "invisibility" bug of a stack behind a fire wall: if the base dangers of the hexes are such that in the best position for attacking this enemy, the front hex of the stack stands on a "dangerous" hex while the rear is on a safe one, then this enemy may be ignored.
For example, you can put 100 Djinns and 1 Fairy in a hero's army; place a city (not a Tower or Stronghold, to avoid native soil bonuses) with a fort but without a citadel, with 1 Behemoth on guard. Attack the city, stand with the fairy in the middle row 2 hexes to the left of the gates (the cell furthest from the behemoth that it can still reach), and position yourself with the Djinn. After this, the behemoth will not attack the fairy, but will only approach so as not to expose itself to the Djinn's attack. The reason is the same as with the fire wall, except its role is played by dangerous hexes within the Djinn's reach.

In a real battle, this happens rarely, as it is relevant only for stacks located on the edge of the reach zone of their own strong stacks, and only if these friendly stacks cannot reach anyone; moreover, the enemy must be two-cell.
Wic
"concentrations/formations" // "Рамп" -> "Rampart" (likely a player nickname or specific army build) // "гранды" -> "Grand Elves" // "кенты" -> "Centaurs" // "грейженого" -> "upgraded" >Cool ...

On this topic, there is a typical problem regarding the formation of a shooting army. For example, for Rampart they are usually placed like this: Grand Elves in the 6th stack, Centaurs in the 3rd or 4th, whose purpose is to serve as bait for an upgraded stack so that Griffins block the Grand Elves and bite the Centaurs instead. Then the Grand Elves hide in the corner, close themselves off, and shoot.

But if there are enough Centaurs, the Griffins might bite the elves. Therefore, with a sufficiently large stack of Centaurs (80+), they are usually split: the main mass is put in the 3rd stack, and bait of about 20 units in the 4th stack. Due to a lack of gameplay practice, I may provide inaccurate numbers, but I think the general idea is clear.

Is it possible to find out the exact figures for the minimum required size of the bait (depending on the number of elves, the size of the formation, and the hero's parameters/skills)? And accordingly, the maximum possible size of the main stack that Griffins are not afraid of. Maybe some calculator or at least a calculation algorithm. Given the +-25%, I guess a range will have to be specified.
Sav
(keep as is) // "sqrt" -> (mathematical term, keep) >I won't write exact figures, but for estimation you can calculate it like this:

The value of a creature is its AI Value. Additions/penalties to its damage and survivability are multiplied by the value under a square root. For example, if a creature has a melee penalty and is blocked, the value is divided by sqrt(2). If the hero has attack 5, the value is multiplied by sqrt(1.25) (the same if defense is 5). If a shield is cast — the value is multiplied by sqrt(1.15), etc. For blessing, curse, etc., the bonus is considered to be how many times the average damage of the stack increases.
Double strike for an unblocked shooter is considered a bonus (multiplies the value by sqrt(2)), but not for a melee unit (this is already included in the AI Value).
If the AI considers its army to be 2 times weaker than the enemy's, then all creature values become identical to it (it tries to kill as many as possible by quantity).

The value of dealing damage is the value of the killed creatures (this can be a fractional number), but the value of finishing off a "top" creature with incomplete health is taken as the value of killing that creature at full health.

The value of a shooter's block is the difference between the stack's value if it shoots and if it is blocked (the difference may be in the melee penalty and double shot).

From this, in principle, everything should be possible to estimate.
Wic
"Armor/Offense" >It's specifically the hero's attack that is counted, or the actual difference between the AI unit's and the hero's unit's attack-defense? How are armor and offense taken into account?

Regarding the small group of Centaurs, the algorithm seems clear; then a second question — how to calculate what size "fat" group of Centaurs Griffins will snap at without being afraid of retaliation? That is, I need the algorithm for accounting for retaliation.
Sav
(idiom meaning "correctly/as intended") >When value is calculated, there is only one unit — the one being evaluated.
To be precise, the attack bonus of this unit (from the hero, native land, etc.) minus the minimum attack bonus across all units of both sides on the battlefield is calculated.

Retaliation is calculated the same way as a strike, through damage value. Naturally, taking into account those killed by the strike. Damage is always taken as an average everywhere.

In general, almost everything is evaluated through the change in unit values resulting from an action.

At the same time, this explains why undead in crypts sometimes behave not according to "feng shui"; it's exactly because of the +-25%.
10 years ago
Auto-translated
- Strike value. This takes into account the value of disabling the retaliation and the value of the exchange of blows itself (without accounting for breath attack and area attack).
So it calculates the value of your own strike and the value of the retaliation, and if the retaliation is much stronger, then the strike won't happen? But this doesn't explain why Nagas in the bank stand adjacent to a single Troglodyte.
After the above calculations, the total value and the hex value are randomly changed by 25% upward or downward (both by the same percentage).
This doesn't change their ratio or the sign of their difference in any way; I'm trying to understand the purpose of this.
*ah, the percentages are the same in absolute value but not in sign. Then it makes sense.
For a two-hex creature, the condition looks like this: strike value is less than 0
How can the strike value against a single Fairy, and even by an attacker without a retaliation, be less than 0? Along these lines: "- The value of the hex from which the attack is made. Here, the base hex value is taken, and part of the strike information is added to it: the value of blocking shooters, the value of using a breath attack or area attack on additional stacks, the penalty for the enemy using a retaliatory breath attack or area attack on your additional stacks. If the creature is large, the worst value of the two hexes it will occupy is taken." - this doesn't include damage from the wall; it's assumed it's still calculated, right?
Among all targets, the best one is chosen as follows: an active stack is better than an inactive one; then by the minimum number of rounds needed to reach the target (the fewer, the better)
How does "then" work? That is, can the AI crawl towards an active (one that hasn't moved this round) target located two moves away, instead of attacking one that has already moved and is within reach this turn? Or does this imply that both are unreachable this turn?
then by the lost health of the last creature in the stack
purely out of curiosity: absolute, not as a percentage of max HP?
, then by the path length to the target (the shorter, the better).
Isn't this the same as the number of rounds to reach the target? Or are hexes counted?
The value of a creature is its AI Value.
In battle, though - is it Fight Value?

Statistics

Welcome our newest member: recijeb