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

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

Posts: 4356
Post: #8956

OB: R S,
Ставить флаг посещенности
После OB ещё, как вариант


Image: widget.png?style=banner2

Новейший Heroes Launcher
25.01.2023 19:00
Visit this user's website Find all posts by this user Quote this message in a reply
ArKan Offline

Posts: 229
Post: #8957

Но противники смогут захватывать объект?
25.01.2023 22:29
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4356
Post: #8958

ArKan, зависит от того, какой код ты напишешь. Прочитай информацию в справке


Image: widget.png?style=banner2

Новейший Heroes Launcher
25.01.2023 22:49
Visit this user's website Find all posts by this user Quote this message in a reply
ArKan Offline

Posts: 229
Post: #8959

В этом то и есть мой вопрос...
26.01.2023 01:16
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1330
Post: #8960

ArKan, попробуй так

  1. !?OB53; посещение шахты
  2. !!MN998:O?(play:y)/1; узнаю хозяина шахты
  3. !!FU&(play)=-1:E; если нет хозяина - выход
  4. !!OW:C?(col:y); узнаю цвет активного игрока (посетившего)
  5. !!re i/0/7; цикл по всем игрокам
  6. !!co&(col)=i; если на очереди цвет активного игрока - пропуск
  7. !!OW:T(col)/?(com:y); есть ли команда с очередным игроком
  8. !!OB998&(com)=i:Di; если есть, то союзнику запрет на посещение
  9. !!OB998&(com)<>i:Ei; если нет, то противнику можно посещать
  10. !!en;

Не тестировал: нет времени на это. Да и скрипт написал "на лету": будет ли работать - не знаю.
Но двигаться нужно примерно в этом направлении.

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

И ещё может быть так, что ИИ будет тупо пытаться безрезультатно посетить шахту, не подозревая, что не проходит фэйсконтроль.


Карта-мод "Война на Холсте"
(This post was last modified: 26.01.2023 09:01 by SergOz.)
26.01.2023 09:00
Find all posts by this user Quote this message in a reply
ArKan Offline

Posts: 229
Post: #8961

О как, благодарю!
26.01.2023 09:34
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1330
Post: #8962

Возможно ли на версии ERA 3.9.2 отключить окно "победитель/проигравший"?
Нашёл вот это:

Quote: отключение окон "победитель/проигравший"
  1. !?PI; !!UN:C5125902/4/34281 C5125907/1/144;
  2. !?GM0; !!UN:C5125902/4/34281 C5125907/1/144;
  3. ; восстановить стандартный код
  4. !?PI; !!UN:C5125902/4/8684559 C5125907/1/0;
  5. !?GM0; !!UN:C5125902/4/8684559 C5125907/1/0;

Без HD мода это работает, а с ним -нет. Видимо, Бараторч что-то изменил в последних версиях.

Очень нужно для того, чтобы имитировать некоторые события на карте. То есть: вызываю бой, ставлю уникальную картинку фона, и управляю стеками по своему усмотрению. Это может быть что угодно: посещение библиотеки, оружейного магазина, бордели, космопорта и т.д.

Пример из моего мода: в заброшенной шахте должны пройти переговоры с некими "повстанцами". 174
Когда игрок заходит в шахту, вызывается бой с определённым монстром. Игрока лишаю ходов, а "повстанцем" управляю. Он подходит и предлагает свои условия. После - принудительно заканчиваю бой поражением "повстанца".
Естественно, что после этого окно "победитель/проигравший" крайне нежелательно.

Идея бесплатная - только помогите !!!


Карта-мод "Война на Холсте"
27.01.2023 03:43
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2404
Post: #8963

(27.01.2023 03:43)SergOz Wrote:  Пример из моего мода: в заброшенной шахте должны пройти переговоры с некими "повстанцами". 174
Когда игрок заходит в шахту, вызывается бой с определённым монстром. Игрока лишаю ходов, а "повстанцем" управляю. Он подходит и предлагает свои условия. После - принудительно заканчиваю бой поражением "повстанца".
Естественно, что после этого окно "победитель/проигравший" крайне нежелательно.

Если результаты боя совершенно не важны, то можно сделать так:

Code:
!!UN:C4682216/2/59792; считать любой бой проигранным для Третьего Рейха
!!UN:C4682395/1/235; выполнять ветку gosolo вместо вывода окна проигравшего

Либо выставляй байт gosolo перед боем, а после боя - восстанавливай как было, тогда игрок не сможет управлять битвой - за него это сделает ИИ как в автобитве.
27.01.2023 10:18
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1330
Post: #8964

(27.01.2023 10:18)XEPOMAHT Wrote:  Если результаты боя совершенно не важны, то можно сделать так:
Code:
!!UN:C4682216/2/59792; считать любой бой проигранным для Третьего Рейха
!!UN:C4682395/1/235; выполнять ветку gosolo вместо вывода окна проигравшего

Это работает: окно победитель/проигравший после боя не выводится.

(27.01.2023 10:18)XEPOMAHT Wrote:  а после боя - восстанавливай как было...

Беда в том, что не знаю как восстановить "как было", а из-за этого, по окончании следующих боёв, окно так же не выводится. А надо Bad


Карта-мод "Война на Холсте"
27.01.2023 11:01
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1330
Post: #8965

XEPOMAHT, большое спасибо - я разобрался. Всё работает!

Жаль только, что парой строчкой кода нельзя оформить поражение Третьего Рейха...


Карта-мод "Война на Холсте"
27.01.2023 11:37
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16731
Post: #8966

Видимо имелось в виду:
!!UN:C4682395/1/?y1; сохранить оригинальный байт gosolo


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

Posts: 1330
Post: #8967

Berserker, да.
Я так сразу и делал, но не туда вставил (имеются ввиду строчки кода) отчего и решил, что действую неправильно.
Но потом вставил в "правильное" место и всё пошло как по маслу )))


Карта-мод "Война на Холсте"
27.01.2023 18:06
Find all posts by this user Quote this message in a reply
Archer30 Offline
Moderators

Posts: 1190
Post: #8968

Hi, I wonder if it is true that UN:U does not work for heroes

With this code, nothing is returned.
  1. !?FU(OnKeyPressed)&i^key^=(KEY_F9);
  2. !!VR(x:y):S-1;
  3. !!re i;
  4. !!UN:U(OBJ_HERO)/(ANY_OBJ)/-1/(x)/(y:y)/(z:y);
  5. !!br&(x)<0;
  6. !!IF:M^%(x) %(y) %(z)^;
  7. !!en;

Is there an alternative way to check for heroes on the map (apart from OW:O)?


Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 11.02.2023 02:12 by Archer30.)
11.02.2023 02:07
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4356
Post: #8969

Archer30, re i and get coords + owner))


Image: widget.png?style=banner2

Новейший Heroes Launcher
11.02.2023 07:25
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2404
Post: #8970

(11.02.2023 02:07)Archer30 Wrote:  Hi, I wonder if it is true that UN:U does not work for heroes

Перед вызовом отключаешь функцию-фильтр на героев на карте:

Code:
_Hero_ *GetHeroOrBoat(_MapItem_ *mip)
{
    STARTNA(__LINE__, 0)
    if (mip->OType == 0x22) RETURN(GetHeroStr(mip->SetUp)); // герой
    if (mip->OType == 8) RETURN((_Hero_*)GetBoatStr(mip->SetUp)); // лодка
    RETURN(0)
}

Тогда функция проверки типов объектов на карте станет их учитывать, но объекты, на которых стоят герои, учитываться перестанут и при поиске других объектов вылезет куча ошибок. Поэтому героев на карте стоит искать всё же через перебор активных героев у 8 игроков. Алгоритм не сложный: узнаёшь количество героев у игрока, получаешь их структуры, смотришь флаг присутствия на карте у каждого, если флаг 1, то далее смотришь флаг нахождения героя в каком-то объекте, если герой в объекте, то считываешь dword с координатами, расжимаешь их битовым сдвигом, если не в объекте - считываешь стандартные координаты из структуры героя. Далее - зависит от того, что ты хочешь сделать с полученным героем по координатам.
11.02.2023 09:33
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-2025 MyBB Group