Current time: 25.11.2024, 15:03 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 5422
Post: #8701

Смотри здесь или вот ещё...


Image: team-supermod.gif
27.02.2022 21:39
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #8702

(27.02.2022 21:39)Bes Wrote:  Смотри здесь или вот ещё...

Данные лимиты - исключительно для установки объектов в редакторе карт и ДО инициализации их на карте в самой игре (но это - только хуком, т.к. ERM в этот момент работает только в MoP, в стандартной ЭРЕ - нет, т.к. автоматическое присвоение ключевых слов - работа содовского кода, в воге такого нет, в эре тоже вряд ли Берсеркер сделает...). После инициализации игрой объектов на карте можно устанавливать неограниченное количество.

Если ключевое слово не настраивается, то хоть 100500 объектов ставь - они все будут работать как один и игра при этом не сглючит, т.к. автонастройку воговский код производит только для:

1. Жилища монстров (тип 17 и 20)
2. Артефакт/ресурс/свиток (типы 5, 79, 93)
3. Шахта/Маяк (типы 42 и 53)
4. Хижина ведьм (тип 113)
5. Верфь (тип 87)
6. Грааль (тип 36)
7. Монстр (тип 54)
8. Знак/Бутылка (типы 59/91)
9. Двухсторонний портал (тип 45)
10. Университет (тип 104)
11. Город (тип 98)
12. Банк Монстров (тип 16)
13. Лодка (тип 8)
14. Событие (тип 26)

Т.е. все объекты в игре можно безопасно устанавливать на карту с помощью UN:I, НО!!! Настройка ключевых слов - целиком на совести скриптёра, т.к. вог по-умолчанию всегда пишет туда 0.
(This post was last modified: 27.02.2022 23:20 by XEPOMAHT.)
27.02.2022 23:11
Find all posts by this user Quote this message in a reply
Archer30 Offline
Moderators

Posts: 1175
Post: #8703

Thanks, guys. I will try to work it out with the hints here. 177


Latest ERA mods and scripts in development - My GitHub
28.02.2022 07:34
Find all posts by this user Quote this message in a reply
Archer30 Offline
Moderators

Posts: 1175
Post: #8704

Quote:Archer: Can we have a value for "not displaying a picture" in IF:N dialogue? Needed that since my amount of pictures was dynamic. As for now, looks like I have to write 8 different IF:N lines for picture amounts from 1 to 8.

Quote:Berserker: We can. Set all 8 items to NO_PIC_TYPE/0 or something like that. I got your point?

Well, I did not achieve a satisfying result with IF:N. I am trying to show a hero's army with IF:N with the following code.


The problem is, when the monster id = (NO_MON) for (PIC_TYPE_MONSTER), IF:N doesn't hide the picture. It shows as transparent.
In order to show correct amout of picture accorindg to the number of troops the hero has, I have to write 7 variants of IF:N (assuming the hero has at least a creature).
For this reason, it looks like IF:G is more convenient in writing, as we can always use an empty z var to hide an option

____

Edit: I tried again with some very weird approach. It works well so far.



Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 04.03.2022 20:06 by Archer30.)
04.03.2022 18:34
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #8705

Right. You need to write function, that accepts SN:M array, allocates 14 temp y-vars to -1, copies passed array items to y-vars and calls !!IF:N.

!!FU(NewIntArray):P?(armies:y);
!!re i/(ARMY_SLOT_FIRST)/(ARMY_SLOT_LAST);
    !!HE(hero):C0/i/?(mon:y)/?(qty:y);
    !!FU(Array_Push)&(mon)>(NO_MON)/(qty)>0:P(armies)/(mon);
!!en;

That's valid way to initialize such an array.


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

Posts: 1175
Post: #8706

Ah, I get it. Although it looks a bit tedious to use IF:N. It's like a heavy weapon, each time you swing it, you have to use all the strengh Rolleyes If IF:N can be combined with arrays, it might be more enjoyable to use, for example syntax like this:



Latest ERA mods and scripts in development - My GitHub
05.03.2022 06:25
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #8707

Archer30, i see typo


Image: widget.png?style=banner2

Новейший Heroes Launcher
05.03.2022 07:38
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #8708

Archer30,


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

Posts: 146
Post: #8709

Подскажите, как полноценно оживить полностью умерщвлённый стек?
08.03.2022 05:11
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #8710

(08.03.2022 05:11)major Wrote:  Подскажите, как полноценно оживить полностью умерщвлённый стек?
Просто правильно восстановить флаги существа (в том числе боевые флаги)


game bug fixes extended.dll || My Plugins || My GitHub
08.03.2022 21:17
Visit this user's website Find all posts by this user Quote this message in a reply
major Offline

Posts: 146
Post: #8711

Просмотрел структуру стека, не нашел ничего, кроме флага *// 00200000 - 0x15 стек убит? и * // +EA db = 1, если был убит весь стек.
Восстановление этих флагов оживляет существо, оно атакует, но его атаковать нельзя, пока оно не сдвинется с места. Причем на том месте остается его копия, которая повторяет все анимации.
Куда еще глядеть?
09.03.2022 11:37
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #8712

(09.03.2022 11:37)major Wrote:  Куда еще глядеть?

Со структуры гекса нужно снимать флаги того, что на гексе лежит труп. Получаешь клеточность стека, затем ориентацию (м или жо, где м - морда), после - вызываешь содовскую функцию, снимающую флаги и проигрывающую антисмертельную анимацию: 1 раз для одноклеточной инфузории, 2 раза - для 2-клеточного, 3 - для трёхклеточного и т.д. Под ЕРМ на это дело где-то код был, но фиг знает где.... Проще добавить в качестве полноценного ERM-ресейвера, без задротчества на UN:C.

Ну и вызвать функцию, перерисовывающую всё поле брани, тоже скорее всего потребуется, чтобы не было графических артефактов.
(This post was last modified: 09.03.2022 12:23 by XEPOMAHT.)
09.03.2022 12:18
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #8713

major, вот рабочий код.



game bug fixes extended.dll || My Plugins || My GitHub
09.03.2022 20:25
Visit this user's website Find all posts by this user Quote this message in a reply
major Offline

Posts: 146
Post: #8714

igrik, спасибо за код, всё работает!
Еще хотелось бы добавить анимацию воскрешения. Видел функцию feanor для этого дела. Ей как-нибудь можно проиграть обратную анимацию, или для этого другая функция?
И еще, если стек погибает повернувшись в другую сторону, то после воскрешения остается повернутым "неправильно". Исправить это можно?
10.03.2022 10:09
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #8715

major, добавил анимацию и поворот стека (обновил то же сообщение)

PS: блин, в очередной раз убеждаюсь насколько же удобнее писать на ERM2 сложные конструкции кода...


game bug fixes extended.dll || My Plugins || My GitHub
10.03.2022 19:50
Visit this user's website 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