Wake of Gods Forum | Форум Во Имя Богов
[Скрипт] Мгновенная тактическая растановка - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Скрипты (/forumdisplay.php?fid=103)
+--- Thread: [Скрипт] Мгновенная тактическая растановка (/showthread.php?tid=6881)


[Скрипт] Мгновенная тактическая растановка - Berserker - 03.07.2023 19:44

Позволяет быстро расставлять отряды мышкой без анимации передвижения.




RE: [Скрипт] Мгновенная тактическая растановка - Archer30 - 15.07.2023 18:22

Great script but HoMM 3 HD already got this feature ready for ERA Rolleyes


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 15.07.2023 18:43

Nope. In HD mod troops really move, which is slow animation and thus NOT INSTANT. And clicking on stack does not pass turn to it immediately (some lag occurs). My script is much better.


RE: [Скрипт] Мгновенная тактическая растановка - Archer30 - 16.07.2023 07:11

Ah I see, great one.

I may be wrong, but I ask anyway if this bit of detail can also be improved:
When switching turns to troops with different passabilities (wide or not, for example, current: Titan, switch to Ghost Dragons by clicking on them) + some obastacles placed at the edge of Tactics range, it can be seen that the hexes on the screen are updated more than once. I suppose hexes range are updated on every stack's turn between the current stack and the clicked stack? It's not very comfortable for eyes.

Another problem is that wide unit sometimes cannot be placed, like in this situation:
Image: GB4PkyU.png
If you click on the position of the arrow pointed, the blood dragon won't be placed. It's only possible when clicking on the hex right to the arrow, which is not convenient, and counters intuition as the shadow already indicated a valid position for the Blood Dragons.


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 16.07.2023 15:31

I tried to play one map a long ago, downloaded daemon's assembly and found out, that for me it's quite uncomfortable to play without Phoenix mod features. Thus I had to semi-port at least two scripts for hit'n'run and instant tactics alignment. Anyway, as you can see from TODO lines, a few features were still missing:

Code:
; TODO: Allow LMB on active stack, allow to place wide stack [here][W][W] and provide better acting side check for hot seat (non-real multiplayer)
; introduce mouse_owner



RE: [Скрипт] Мгновенная тактическая растановка - Archer30 - 16.07.2023 19:05

Very cool. I'd like to see more of this kind of script.


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 16.07.2023 19:57

Thanks. I hope, I'll be able to work on scripts engine a bit in August.


RE: [Скрипт] Мгновенная тактическая растановка - Archer30 - 26.07.2023 09:05

I encountered a problem when using this script. It's not the problem of the script itself, but the multiplayer Synchronization.

In MP, if a hero forgets his tactics skill just before initiating a battle, and then initiates a battle with another hero with tactics, this defending hero cannot place the troops correctly (coz (tacticsRange)=0).
I checked the Tactics levels on the defender's PC, it shows both heroes have Expert Tactics, which isn't true coz the attacking hero has already forgotten Tactics skill.

Here's my revised script.
Allow LMB on active stack - fixed
Allow LMB on opponent's stacks - fixed
Place wide stack [here][W][W] - fixed
Provide better acting side check for hot seat - fixed
Introduce mouse_owner - not sure what it is
The only remaining issue is the MP issue as I mentioned above - should be fixed in ERA.




RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 26.07.2023 10:41

Archer30, great additions, thanks!
I thought actual hero structures are synchronized right on battle start, thus any skill changes should be preserved. Maybe you mean script, changing skills in !?BA trigger?


RE: [Скрипт] Мгновенная тактическая растановка - Archer30 - 26.07.2023 13:21

Quote:Maybe you mean script, changing skills in !?BA trigger
No. I forgot Tactic skills for my attacker with Valery's Trainer (HE:S). That's long before the !?BA. I thought the change should be reflected in the defender's PC, but surprisingly it didn't.


RE: [Скрипт] Мгновенная тактическая растановка - SergOz - 22.10.2023 01:32

Странно, но только заметил этот скрипт 36
Сперва, прочитав название скрипта, подумал что это аналог того "костыля", который я сделал для своего мода.
Но, оказалось, что он производит иные действия.

В сложных боях, когда приходится часто их переигрывать, игрок, раз за разом, тратит время и нервы на повтор тактической расстановки своих войск. Я, в событии !?FU(OnAfterTacticsPhase); считываю расстановку войск, а потом, при переигровке, в !?FU(OnKeyPressed);, по нажатии F8, через !!BM#:P; мгновенно её повторяю.
Вот это действительно очень нужная для игроков фишка. Потому было бы замечательно, если бы её реализовали.

Свой скрипт приводить не буду, так как работает он "не очень" ну и не тянет он на глобальность, а "заточен" на мои скромные нужды... 147

P.S. В идеале эти скрипты объединить бы .


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 22.10.2023 02:50

SergOz, идея интересная, если расстановку игрок менять не хочет.


RE: [Скрипт] Мгновенная тактическая растановка - SergOz - 22.10.2023 03:13

Berserker, так в чём проблема? Если захочет - поменяет, не нажимая F8 (условно).


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 22.10.2023 03:26

Я про то же. Один раз расставил — дальше горячая клавиша. Полностью поддерживаю идею.


RE: [Скрипт] Мгновенная тактическая растановка - SergOz - 22.10.2023 03:31

Berserker, да, там ещё нужно обнулять данные, чтобы в следующей битве не воспроизводилась расстановка. Я думаю что нужно просто блокировать нажатие F8, если переменные нулевые


RE: [Скрипт] Мгновенная тактическая растановка - SergOz - 22.10.2023 23:33

Решил всё-таки показать свой код.
Ну, чтобы указали на ошибки - Punish - для развития нейронной сети


P.S. А F8 то занята... а я хотел на ней жениться её использовать.
Она вкл/выкл тень перемещения.


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 23.10.2023 00:13

Номера монстров 145, 146, 147 можно заменить на константы вида (MON_XXX).

В остальном особых придирок нет, скрипт рабочий 132


RE: [Скрипт] Мгновенная тактическая растановка - SergOz - 23.10.2023 00:18

Berserker, не понимаю в каком моменте обнулять данные, чтобы в следующем бою не использовались. Ну а (MON_XXX) не использовал здесь, чтобы была строка покороче)


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 23.10.2023 00:46

Ниже вариант, но не тестировал.
Позиции хранятся в массиве на 42 слота. Перед боем он обнуляется. Нулевые координаты не используются при нажатии T.




RE: [Скрипт] Мгновенная тактическая растановка - SergOz - 23.10.2023 04:38

Berserker, тесты показали что всё работает отлично. Спасибо. Thank_you

!!SN:V -где можно глянуть на эту команду?


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 23.10.2023 07:45

era iii changelog:
Code:
[+] Added VR:C alternative for SN:M arrays. New command !!SN:V#1/#2/$3...up to $21 allows to set/check/get/modify
    many items of dynamic array (working with Vector).
    #1 - SN:M array ID.
    #2 - starting index
    $3... - items at starting index, starting index + 1, starting index + 2, etc.
SN:V[ИД динамического массива]/начальный индекс, с которым работаем от 0 до размер массива - 1/операция с элементом по начальному индексу/операция с элементом по следующему индексу/...

Мнемоника: V - Vector, вектор как таблица значений с одной строкой. Команда позволяет работать массово с элементами массива, начиная с определённого индекса. В простейшем случае аналогична SN:M. Отрицательные индексы означают «с конца массива». -1 — последний элемент, -2 → предпоследний.


RE: [Скрипт] Мгновенная тактическая растановка - SergOz - 23.10.2023 20:32

Berserker, спасибо.
Внедрение операций с массивами здорово упростило многие задачи в написании скриптов.
Но до сих пор мне хватало !!SN:M. Никак не доберусь до этого чейнжлога. В основном из-за того, что он на английском.


RE: [Скрипт] Мгновенная тактическая растановка - Berserker - 23.10.2023 21:36

В скрипте выше можно SN:V заменить на SN:M. А так Яндекс переводчик сносно переводит уже документацию. Можно и гугловский проверить и сравнить.