Current time: 22.09.2019, 19:46 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 11058
Post: #5686

ElfbI, пробовали новую команду для установки описания существам?


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
19.08.2019 01:57
Find all posts by this user Quote this message in a reply
Igor Offline

Posts: 63
Post: #5687

Написал скрипт для определения расстояния между 2мя гексами на поле боя. А как можно и можно ли из него сделать функцию чтобы не дублировать его целиком в каждом скрипте? Функциями пользовался но никогда их не писал. Или такая функция уже есть?
19.08.2019 20:08
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 11058
Post: #5688

Писал когда-то на паскале:
Code:
FUNCTION CalculateDistance (SrcPos, DstPos: INTEGER): INTEGER;
VAR
  DistanceX:  INTEGER;
  DistanceY:  INTEGER;
  x1, x2:     INTEGER;
  y1, y2:     INTEGER;

BEGIN
  x1  :=  SrcPos MOD BATTLEFIELD_LINE_SIZE;
  y1  :=  SrcPos DIV BATTLEFIELD_LINE_SIZE;
  x2  :=  DstPos MOD BATTLEFIELD_LINE_SIZE;
  y2  :=  DstPos DIV BATTLEFIELD_LINE_SIZE;

  DistanceY :=  ABS(y1 - y2);
  DistanceX :=  ABS(x1 * 2 - (y1 AND 1) - x2 * 2 + (y2 AND 1)) - DistanceY;
  
  RESULT  :=  (DistanceY * 2 + Math.Max(DistanceX, 0)) DIV 2;
END; // .FUNCTION CalculateDistanc

Может быть кто придумает проще.


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
19.08.2019 23:05
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 70
Post: #5689

Berserker, нет еще, я пока на эре v2.7.7

Времени нет пока, да и тот скрипт я отладить не успел еще. Работа(


The dreams you kill will break your heart
20.08.2019 00:01
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 70
Post: #5690

Berserker, вот кстати скрипт для генерации сокровищ на воде, который в итоге вышел (осторожно, здесь были индусы 96-copy )
   Осталось настроить, сколько сокровищ будет появляться и артефакты в сундуке / у мужика на бревне, может, убавить.
   Возможно, пригодится кому мой г****код, я пока баги ловил, достаточно подробно комментарии писал. Вроде работает, как часы. Проверял: если нет воды, если клетки воды заняты, если на все клетки сокровища поставлены, если вода в подземелье, если на воде герой. Надо бы с ним поиграть, но когда смогу еще...


The dreams you kill will break your heart
(This post was last modified: 20.08.2019 01:05 by ElfbI.)
20.08.2019 01:02
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 11058
Post: #5691

ElfbI, хорошо задокументировано и оформлено. Писать на ЕРМ просто и лаконично в любом случае невозможно, не хватает высокоуровневых конструкций.


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
20.08.2019 02:38
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1789
Post: #5692

Чтобы не потерять:
Код на определение расстояния между двумя гексами на ERM (© Berserker)


UPD: а вот геройская функция 0x469250 int __fastcall BattleMgr_GetStepsTaken(gex_start, gex_finish) ((return distance))


Скачать HoMM3 ERA 2.8.3 (Repack: Rus & HD)
21.08.2019 21:06
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 11058
Post: #5693

igrik, не вижу особенного смысла запрещать позиции за гранью поля боя %17 = 0 или 16. Они вполне корректные для больших существ и никак не влияют на математику.


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
21.08.2019 23:09
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1789
Post: #5694

Berserker, эти поля же недопустимы для существ. Двухгексовые монстры также на них не становятся. Я не вижу смысла в них для данной функции.


Скачать HoMM3 ERA 2.8.3 (Repack: Rus & HD)
22.08.2019 09:50
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 11058
Post: #5695

igrik, а баллиста на них не залазит? Может ли до них достать площадное заклинание?


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
22.08.2019 13:48
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1789
Post: #5696

Площадное заклинание до этих полей не достаёт.
Баллиста и палатка вторым (задним) гексом на них стоит. Но на этих гексах даже информацию о них посмотреть нельзя. Повода же стоит на нормальном (рабочем) гексе.
К тому же, я не раз в коде встречал, что эти гексы не используются в проверках на рабочий гекс.
Вот например выдрежка из кода функции получения кадра дефа на поле боя при движении мыши.

Image: image.jpg


Скачать HoMM3 ERA 2.8.3 (Repack: Rus & HD)
22.08.2019 16:33
Visit this user's website Find all posts by this user Quote this message in a reply
Igor Offline

Posts: 63
Post: #5697

Berserker, igrik, спасибо.
22.08.2019 22:27
Find all posts by this user Quote this message in a reply
slater777 Offline

Posts: 65
Post: #5698

Возникла идея написать скрипт, при котором все хранилища дракономух заменялись бы камнями опыта. Сам скрипт замены найден и работает. Но проблема в том, что герой, посещая данный новый камень, посещает и все остальные. Т.е. у всех новых камней номер одинаковый. По крайней мере, по другому я это объяснить не могу. Не подскажете, через какую команду можно все м таким объектам присвоить новые номера?
22.08.2019 22:34
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 11058
Post: #5699

!!OB:C?


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
22.08.2019 23:28
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 140
Post: #5700

В ERM-справке написано:
!!ST#1/#2/#3:XXXX; - камень знаний в X Y L.
N$ - Номер камня знаний
(This post was last modified: 22.08.2019 23:48 by wessonsm.)
22.08.2019 23:41
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-2019 MyBB Group