Current time: 21.04.2024, 18:47 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
Archer30 Offline
Moderators

Posts: 1117
Post: #8746

wessonsm, awesome code mate. Thanks for sharing!
I was trying to understand the idea of the code, but it looks like it's missing a function FU(wss_IfPosIsValid). Could you also post it here, please?


Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 19.03.2022 17:35 by Archer30.)
19.03.2022 16:31
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 779
Post: #8747

Archer30, i will do it soon.
It hasn't been tested yet.
I've added a check to see if the position has a defensive moat (thanks to XEPOMAHT) and a hex in front of the town gate (95) that is inaccessible to the attacker.

The post above has been updated. Missing functions added.

The idea is that the positions are checked in this order, as shown in the figure:

Image: hex.png
19.03.2022 17:23
Find all posts by this user Quote this message in a reply
Archer30 Offline
Moderators

Posts: 1117
Post: #8748

wessonsm, looks flawless! That is just amazing! Thanks again for your code!

We will use your code in WoG Scripts - Henchmen and Enhanced Henchmen Mod. Is that ok?


Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 20.03.2022 13:59 by Archer30.)
20.03.2022 13:35
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #8749

wessonsm, есть константа в Era Erm Framework:

!#DC(COMBAT_MANAGER) = 6919200;


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
20.03.2022 14:10
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 779
Post: #8750

Archer30, of course. I will be glad.

Berserker, спасибо.
И спасибо за Эру 3, я думаю, написание такого кода на ERM1 потребовало бы в разы больших усилий.
20.03.2022 15:01
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #8751

wessonsm, пожалуйста. Жаль, так и не успел с Lua сделать аналогичное.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
20.03.2022 18:22
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #8752

Здравствуйте ребята..

Я недавно задался вопросом как можно проверить у всех существ, находящихся в конкретном герое способность круговой и двойной удары (речь идёт не о флаге, а именно о самой способности)

Если на флаг проверить просто и много места не занимает такая проверка, то проверить способность, встроенную в существо не просто!
Стал я проверять таким образом, но это целая «энциклопедия» у меня получилась
У каждого существа есть по 14 действующих стеков способностей от 0 до 13, а выше работают только на атаку и по скорость, а ячеек в герое 7 (от 0 до 6) и вышел у меня такой огромный скрипт
(в скрипте если есть двойной удар или круговой удар, то значению я присваиваю 2)

- технически я не могу объяснить принцип этого скрипта, но если нажать на значок опыта, то должна отобразиться в сообщении всплывающем сумма всех строк у способностях существа, если таковы имеют круговой и двойной удар

Не понимаю как можно этот код записать в кратком виде ? Bad Нет соображения.
Может есть вариант сократить этот кошмар! Буду только признателен за помощь или подсказку!

Мне бы намёк или лучше будет образец как этот скрипт можно по минимуму порезать!
(This post was last modified: 21.03.2022 15:07 by fatsawhorse.)
21.03.2022 15:06
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 779
Post: #8753

fatsawhorse, это действительно кошмар.
Здесь нужно использовать циклы.
Кроме того, такое количество использованных глобальных v-переменных наверняка вызовет сбои в работе других скриптов.
Главный вопрос такой: чего ты хочешь добиться этим скриптом?
Какую информацию должна предоставить сумма, которую ты хочешь отобразить?
Тебе нужно узнать, есть ли у кого-то из армии героя такие способности?
Или количество стеков с такими способностями? Или что-то еще?
Может можно получить эту информацию в более удобной форме?

И напомни, пожалуйста, какую версию ERA ты используешь.
21.03.2022 16:36
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #8754

wessonsm здравствуйте.. ЭРА 3.0.5 (все циклы здесь работают, ну то есть на самой эре, на 2.9.4 они бы не сработали через !!re)

Quote:Кроме того, такое количество использованных глобальных v-переменных наверняка вызовет сбои в работе других скриптов.
- я уже использовал все переменные y в этом коде и теперь надо только v переменные брать, так как y исчерпали себя, к сожалению от 0 до 100 Bad

Quote:Главный вопрос такой: чего ты хочешь добиться этим скриптом?
- трудно ответить, но в целом если существа героя имеют такие способности, и цифры будут это показывать, тогда в дальнейшем я придумаю опираясь на эти цифры уже саму суть этого кода..

Quote:Какую информацию должна предоставить сумма, которую ты хочешь отобразить?
- пусть на данный момент показывает суммарное число от цифр всех, которые будут найдены в слоте у существа, если он имеет таковую способность.

Quote:Тебе нужно узнать, есть ли у кого-то из армии героя такие способности?
- да, Вы правы, мне нужно узнать есть ли такие способности у всех существ в армии героя, что находятся у него в слотах в данный момент и если они есть, то присваивается цифра 2 к способности найденной (если в слоте циклоп и он имеет 2 двойных и круговой удар, то ему будет цифра 6 соответствовать, так как одна способность двойной атаки равна 2 и круговой точно также)

Например, во-втором стеке есть гоблин с двойным ударом и круговым, то надо этому существу присвоить цифру 4, ну то есть цифра 2 если круговой и цифра 2 если двойной а в сумме 4. Если же у этого гоблина будет 3 двойных удара и 5 круговых, то надо этому гоблину присвоить 16, ну то есть 3+5*2 и такая проверка на всех ячейках героя

Циклами как не пытался записать это самостоятельно в течение недели - не получилось Bad
(This post was last modified: 21.03.2022 16:57 by fatsawhorse.)
21.03.2022 16:55
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 779
Post: #8755

Не нужно использовать такое количество переменных только для того, чтобы потом посчитать их сумму.
Достаточно использовать одну переменную и просто прибавлять к ней 2, если у существа обнаружена требуемая способность.
Аналогично не нужно проверять сразу все линии опыта 0-13 (кстати почему 13, в справке вроде 0-19?), можно точно так же проверять по одной и увеличивать при этом сумму.
Одно только это сократит количество переменных в разы.
Ну а с использованием циклов и объем кода сократится раз в 10.

И еще кажется твой скрипт включает линии опыта, а не просто проверяет их. Точно не могу сказать, потому что никогда не использовал эту фичу.
По идее тебе нужно проверять второй параметр (0 или 1, включена способность или нет).
Ну а самому проверять у меня нет особого желания, если честно.
21.03.2022 17:20
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #8756

Quote:Достаточно использовать одну переменную и просто прибавлять к ней 2, если у существа обнаружена требуемая способность.
- не могу понять как это можно записать? Смысл ясен, но математически не вник! Всё равно бы не отказался от образца.. Пусть не сейчас, но в течение недели можно Sm

Quote:(кстати почему 13, в справке вроде 0-19?)
от 14 до 19 способности там не работают а только первичные навыки. Сам тестировал 7 лет назад, поэтому только от 0 до 13

Quote:Ну а с использованием циклов и объем кода сократится раз в 10.
- да, ещё бы уметь в этих самых циклах это записать!

Quote:И еще кажется твой скрипт включает линии опыта, а не просто проверяет их.
- да, точно, исправлю на d вместо 1, чтобы не менялось значение..

Quote:(0 или 1, включена способность или нет).
- наверное не будет толку, поскольку способность работает когда ячейка с 4 по 15 не просто активна, а указывает 1, что способность активирована в данный момент, а включена она 1 или выключена 0 не даст результата, так как если отключить то исчезнет. а 1 будет и так не активна без 1 в слотах с 4 по 15

Quote:Ну а самому проверять у меня нет особого желания, если честно.
- понимаю Вас, сам бы на Вашем месте точно также ответил Sm
21.03.2022 17:45
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 779
Post: #8757

fatsawhorse, я по прежнему не понимаю смысла подобного скрипта, но тем не менее, можешь протестировать:


Как видишь, циклы - это очень просто. Все команды между !!re и !!en будут выполняться несколько раз - столько, сколько нужно.
21.03.2022 18:56
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #8758

wessonsm, спасибо за наглядный пример, я тоже потараюсь добавить, дабы fatsawhorse таки окончательно понял циклы и упростил себе жизнь (ведь как он свои скрипты создаёт, рабочие, прям жалко становится за потраченное время и энергию)

fatsawhorse, вот смотри...
Ты уже понял смысл !!DO, а потому на его примере попробую разжевать
Допустим, ты выбрал поиск существа №66 в армии героя, и для этого напишешь такое:
Так вот, если представить этот ресивер цикла !!DO как новый вид циклов !!re, то вот что ты увидишь:

P.S.касаемо команды !!co в теле цикла !!re
Берём тот же пример, но с другим поведением

Вот вроде и всё.
если что ещё осталось непонятно, спроси...


Image: team-supermod.gif
22.03.2022 12:35
Visit this user's website Find all posts by this user Quote this message in a reply
Archer30 Offline
Moderators

Posts: 1117
Post: #8759

wessonsm, the function you wrote worked well. Although there is one thing it can be improved, that is to recognise walls in siege as invliad positions. Perhaps you can improve that?

Berserker, the function of getting a position for BU:S is very useful, I recommend it to be included in Era Erm Framework after some edits

________


I have several questions about arrays.

1. What is the main difference between VR:C and SN:M array? I suppose VR:C takes fewer resources to execute, while SN:M is like a heavy weapon, powerful but less efficient?

2. What is the random mechanism of FU(Array_Shuffle)? Is it like VR:R (seed-based) or VR:T (time-based)?

3. What is the quantity of elements allowed for both VR:C and SN:M?


Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 24.03.2022 18:53 by Archer30.)
24.03.2022 18:42
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 779
Post: #8760

Archer30, both !!BU:O and !!SN:E4625904 should recognize walls as invalid positions.
If it doesn't, there is probably a mistake somewhere. I'll check again.
24.03.2022 20:39
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group