Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Тонкости ЕРМ, использование UN:C
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Страницы: 1, 2, 3, 4
feanor
Стрелять стеком.

Код
!!UN:C6919200/4/?y10;

!!VRy11:S0 *1352 +21708 +y10; **0 - первый стек
!!VRy21:S21 *1352 +21708 +y10; **21 - второй стек

!!SN:E4453920/2/y11/y21;


Только анимировать (анимация юнита + полет снаряда)
Код
!!SN:E4452320/2/y11/y21;
feanor
Смена дефа у стека во время боя.

Деф существа
Код
!!BM0:G-13/?y1/d;  0 - номер стека
!!SN:E5622208/2/^celf.def^;
!!BM0:G-13/v1/d;  0 - номер стека
!!UN:Cy1/4/?y3;
!!VRy3:+4;
!!UN:Cy3/4/?y4;
!!SN:Ey4/2/y1;



Деф снаряда

Код
!!BM0:G-12/?y1/d;  0 - номер стека
!!SN:E5622208/2/^phalf.def^;
!!BM0:G-12/v1/d;  0 - номер стека
!!UN:Cy1/4/?y3;
!!VRy3:+4;
!!UN:Cy3/4/?y4;
!!SN:Ey4/2/y1;


Озвучки

Код
!!BM0:G-10/?y1/d;  0 - номер стека
!!SN:E5622064/2/^somesnd.wav^;
!!BM0:G-10/v1/d;  0 - номер стека
!!UN:Cy1/4/?y3;
!!VRy3:+4;
!!UN:Cy3/4/?y4;
!!SN:Ey4/2/y1;


(-10: Звук перемещения
-9: Звук атаки
-8: Звук урона
-7: Звук выстрела
-6: Звук смерти
-5: Звук защиты)
Berserker
Теперь иожно делать набор альтернативных моделей, меняющихся случайно в бою.
hippocamus
Это Бабе-Яге кремлёвской нужно.
feanor
Функция для определения того, какой клетке какая разновидность поля боя соответствовала бы.

Код
!?CM0;
!!CM:P?y1/?y2/?y3;
!!VRy1: &1023;
!!VRy2: &1023 *65536 |y1;
!!VRy3: &15     *67108864 |y2;

!!UN:C6918840/4/?y5;
!!SN:E4304144/2/y5/y3; (ИСПРАВЛЕНО: ранее было y2;)
!!IF&v1=0:M0/4/^Вырубки^;
!!IF&v1=1:M0/4/^Предгорья^;
!!IF&v1=2:M0/4/^Опушка^;
feanor
Вывести текст в строку подсказки на карте приключений
Код
!?HM-1;
!!VRz1:S^Следуя за белым кроликом..^;
!!UN:C6918840/4/?y5;
!!SN:E4239424/2/y5/z1;
Axolotl
Цитата
Смена дефа у стека во время боя.

Проиграть анимацию на определенном гексе:

Только анимировать (анимация юнита + полет снаряда)


Ух-ты....какие интересные вещицы я пропустил.

Цитата
Теперь можно делать набор альтернативных моделей, меняющихся случайно в бою.


Ага, еще так можно расширить набор анимаций существ, т.е. делать специальные атаки, альтернативные формы одного существа (ну там всякие фишки типа, убив вражеский стек, существо впадает в Ярость, и соответственно принимает другой вид) и.т.п.

Еще вспомнил забавную, чисто косметическую штуку из нашей King's Bounty - там для некоторых существ сделано два вида движения, например дракон Летит, если расстояние больше скольки-то гексов, а на малое расстояние идет пешком.

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

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

Это немного разные вещи. Код feanor'a - это проиграть/сменить анимацию существа, а Вы говорите о проигрывании анимации на юните (например молитва/блок)
но всё же для и 3.58f и TE/ERA<II и ERA II
Траблов и глюков ниразу не было)

hippocamus
Цитата(Axolotl @ 15 Nov 2013, 09:48) *
А по поводу проиграть анимацию на определенном гексе, не совсем понял, что за номер анимации, в смысле номер заклинания из имеющихся или как?

Ну на любом гексе поля, даже на пустом, вызвать, например, анимацию молитвы или вампиризма.
Axolotl
Цитата(hippocamus @ 15 Nov 2013, 17:19) *
Цитата(Axolotl @ 15 Nov 2013, 09:48) *
А по поводу проиграть анимацию на определенном гексе, не совсем понял, что за номер анимации, в смысле номер заклинания из имеющихся или как?

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


Т.е. все таки имеющиеся в Героях заклы и эффекты, а совместить с приведенным Igrik'ом примером можно как-то, т.е. поиграть лююой деф, но на гексе, а не стеке?
feanor
Дак RedirectFile же

Код
!!SN:L^Era.dll^/?y1 Ay1/^RedirectFile^/?y2 Ey2/1/^старое имя дефа^/^anyfuckingdef.def^;
..
!!SN:Ey2/1/^старое имя дефа^/^^;

и да, повторюсь насчет обсуждений.
feanor
К событиям около Украины.

Заставить героя фэйспалмить (или проигрывать иную анимацию в бою)

Код
!!UN:C6919200/4/?y10;
!!VRy11:S0 *4 +y10 +21476; (0 - левый, 1 - правый)
!!VRy12:S0 *4 +y10 +21484; (0 - левый, 1 - правый)
!!UN:Cy11/4/2; (номер группы кадров. 2 - failure, 3 - victory, 4 - cast)
!!UN:Cy12/4/0; (номер кадра)


Исправил баг в функции из поста #105: не учитывалась Z-координата.
feanor
Заменить деф у героя в бою.

Код
!!UN:C6919200/4/?y10;
!!VRy51:S0 *4 +y10 +21508; (0 - левый, 1 - правый)
!!UN:Cy51/4/?y52;

!!SN:E5622208/2/^ch17.def^; (таки имя дефа)
!!UN:Cy51/4/v1;

!!UN:Cy52/4/?y53;
!!VRy53:+4;
!!UN:Cy53/4/?y54;
!!SN:Ey54/2/y52;


Таки да, можно делать героев с уникальными боевыми моделями.
Orzie
Ты прямо радуешь! Сегодня попробую накидать разных скинов героев, может быть получится. Это ж для каждого персонажа можно наваять боевую версию, получается?
Orzie
Я просто уже давно задумывался на эту тему, типа такого (разумеется, черновик)

feanor
Получить адрес z-переменной из ert-файла

!!SN:E7824928/1/299000; //299000 - номер.

..если вы не знаете, зачем это вам - проходите)

igrik
Картограф
Код
!!VRy1:S[цена за посещение картографа];
!!UN:C4884208/4/y1;  [проверка на бабки]
!!VRy1:*-1;
!!UN:C4884434/4/y1;  [снять капусту]

+ к этому нужно подправить текстовик "advevent.txt" 71 и 77 строки для правильного описания
feanor
Строение номер 20, отмеченное в справке как "??? (0,1,2,3,4,5,6,7,8)" - это верфь с построенным корытом.
feanor
Цитата(http://wforum.heroes35.net/showthread.php?tid=4413&pid=84654#pid84654)
Код
ZVSE
!?FU45225815;
!!UN:C6919480/4/?y15; gamemgr
!!UN:C6918840/4/?y10; advmgr
!!VRy11:Sy10 +92;
!!UN:Cy11/4/?y11; gamemap
!!SN:E4228816/2/y11/x1/x2/x3;
!!VRy12:Sv1; mapitem

!!OBx1/x2/x3:T?y30 U?y31 T5 U5;
!!TRx1/x2/x3:E?y32 E0;
!!UN:C6781300/4/9597928;

!!SN:E5019216/2/y15/y12;

!!UN:C6781300/4/6782120;
!!TRx1/x2/x3:Ey32;
!!OBx1/x2/x3:Ty30 Uy31;


!?FU77003; keystroke

!!VRz1:S^avlctrs0.def^;
!!FU45225815:P13/13/0;

Как-то так - изменить деф двуклеточного объекта в координатах 13/13/0 (правая клетка) на болотную нору.
С активными одноклеточными и двуклеточными работает нормально, с трехклеточным гарнизоном приемлемо (у неактивных клеток отваливается табличка с населенностью гарнизона), а у неактивных и многоклеточных потом на дополнительных клетках повисает ПКМ-подсказка "Артефакт".
feanor
Определить рандомность или нерандомность карты.

Код
!!UN:C6919480/4/?y10;
!!VRy11:Sy10 +128980; //получить адрес начала имени папки с картой
!!UN:Cy11/1/?y11; //получить первый символ
!!FU&y11<>114:E; //если не 'r' (random_maps), то выйти; 109 - maps; 104 - h2sw )
igrik
- Мистицизм +5, +10, +20 маны в день
- Поместья +250, +500, +750 золота в день
+ подправить тектсовик для правильного описания
Iv
А можешь сделать базовое восполнение маны, равное Знанию героя?
igrik
Тут без UN:C. Но предупреждаю стразу - скрипт дико!!! медленный. Почему? - не знаю. Знаю только, что это из-за ресивера !!HE...:I. Без него скрипт работает быстро
feanor
Да поставь ты хук на начало рассчета регена маны
004E41B0
там и правь коэффициенты на лету
можно даже знание из структуры героя взять, [ecx+1143]
только про артефакты не забудь
igrik
Получилось так. Знаю что работает, но вот на баги не проверял. Работает быстро. Нужен erm_hooker
Код
!?PI;
!!FU303030:P31894; x1 - номер вызываемой функции
!?GM0;
!!FU303030:P31894; x1 - номер вызываемой функции

!?FU303030;
; x1 - номер вызываемой функции
!!SN:L^EraPlugins\erm_hooker.era^/?y1 Ay1/^SetHook^/?y2;
!!SN:L^era.dll^/?y3 Ay3/^PluginExists^/?y4 Ey4/1/^erm_hooker^;
!!SN&v1>0:Ey2/1/5128624/x1;

!?FU31894;
!!SN:X?y1;
; EDI (0), ESI (4), EBP (8), ESP (12), EBX (16), EDX (20), ECX (24), EAX (28)
; RetAddr (32)
!!VRy2:Sy1 +24;             // перейти к [ECX]
!!UN:Cy2/4/?y3;             // прочитать содержимое [ECX]
!!VRy4:Sy3 +26;             // перейти к номеру героя [ECX +26]
!!UN:Cy4/4/?y5;             // узнать номер героя
!!HEy5:Fd/d/d/?y10;         // узнать параметр знания
!!VRy2:Sy1 +16;             // перейти к [ECX]
!!VRy10:-1;                 // короче нуно отнять еденицу
!!UN:Cy2/4/dy10;         // прочитать содержимое [ECX]
Iv
Круто! Герои сделали ещё один шажок к идеалу
igrik
Открыть диалог монстра, как при покупке (т.е. без морали/удачи, без заклов, без бонусов)
Код
!?FU[номер функции];
; x1 - номер монстра
; x2 - анимировать/кнопка ок(1) или нет(0)
!!UN:C6919480/4/?y1;
!!SN:E6243760/2/y1/x1/300/32/x2;
; 300 - это координата по "X"
!!UN&x2=1:C6918832/4/?y2;
!!SN&x2=1:E5298096/2/y2/0;
!!SN&x2=1:E6245280/2/y1;
!!SN&x2=0:E6245264/2/y1;
feanor
!!UN:C5167979/4/200; - скорость анимации моря и рек, мсек
feanor
Радиус обзора вышки в Башне.

!!UN:C5005692/1/20;
!!UN:C5011919/1/20;
!!UN:C6026482/1/20;

Радиус действия вуали тьмы у некров.

!!UN:C5011669/1/20;
!!UN:C4854195/1/20;
hippocamus
А почему 2-3 адреса, а не один? Что будет, если поменять не все?
feanor
igrik
Обновить отображение артов в рюкзаке героя (тех что высвечиваются 5 штук)
Код
!?CM2;
!!SN:E5092448/1;
!!UN:R3/-1;

Хотя в иде она отмечена, пусть будет всё же тут, а то я как-то очень икал её.
Еще бы откопать обновление артов для окна встечи героев.
Berserker
Воздух задержать неплохо бы
igrik
Цитата
Воздух задержать неплохо бы

???
Код
; фикс Плаща Короля Нежити
!#UN:C5127994/4/56; скелет без нав. Чародейство
!#UN:C5127987/4/57; скелет воин для баз. Чародейство
!#UN:C5127978/4/58; живой труп для продв Чародейство
!#UN:C5127967/4/59; зомби для эксп Чародейство

Berserker
Цитата
Хотя в иде она отмечена, пусть будет всё же тут, а то я как-то очень икал её.
Orzie
Нормально ж всё. Я вот VCMI икал. Везде.
major
А можно сделать так, чтоб регенерация по возможности воскрешала погибших существ?
tolich
Можно.
feanor
Цитата(Миханик @ 23 Jun 2008, 15:49) *
Представляю общественному вниманию плоды моих графоманских изысканий. Это описание контрольных слов разных типов объектов в формате RTF. Появилось как развитие моего поста от 8 октября в этой теме, но там не только персональные номера. Есть кое-что новое, в том числе - описание КС Фонтана удачи (ранее я его не встречал). В конце файла небольшой списочек, там сжато некоторые интересные факты. Документ расчитан скорее на рядовых пользователей ВоГ, возможно, его стоили выложить в "Обучении ЕРМ"? Так что вот так.
Файл можно ; залил бы в архив на woggrad.ru, но что-то не допёр, как туда закачивать. Хотя ранее я туда уже что-то выкладывал, но вот забыл. или браузер глючит, подло не показывая кнопку закачки. никто не просветит на эту тему (лучше в ПМ, дабы не флудить)?
Возможно, потом выложу содержимое файла прямо в этот пост.


Перевыкладываю
https://dl.dropboxusercontent.com/u/61759222/HoMM/ob-c.rtf
igrik
Код
!?FU[RedrawHeroMeetingScreen];
!!UN:C6962576/4/?y1;
!!SN:E5960928/2/y1/0;
!!SN:E5960928/2/y1/1;
!!SN:E5968384/2/y1;

!!VRy2:Sy1+56;
!!UN:Cy2/4/?y3;
!!UN:Cy3/4/?y4;
!!VRy4:+20;
!!UN:Cy4/4/?y5;
!!SN:Ey5/2/y3/0/-65535/65535;

!!UN:C6918864/4/?y5;
!!UN:C4199496/2/?y6 C4199503/2/?y7;
!!SN:E6304144/2/y5/0/0/y6/y7;

Обновляет весь диалог окна встречи героев и при любом разрешении экрана (с HD и без него). В том числе и арты
PS: не без помощи Berserker'a
igrik
Изменение координат отображения WoG диалогов DL
thanks gamecreator, sergroj.
Код
!!DL[№]:N^Dialog.ini^;   [файл с настройкаим диалога]
!!FU88000:P[№]/[X]/[Y];  [изменение координат диалога]
!!DL[№]:S?v1;            [вызов диалога]

!?FU88000;
; x1 - номер WoG диалога
; x2 - координата по X (-1 или 0 по центру)
; x3 - координата по Y (-1 или 0 по центру)
!!VRy1:Sv1;
!!SN:E7510739/1/x1;
!!VRy2:Sv1;
!!if&y2<>0:;
  !!UN:Cy2/4/?y5;
  !!if&x2<1:;
    !!VRy6:Sy5 +32;
    !!UN:Cy6/4/?y7;
    !!UN:C4199496/2/?y8;
    !!VRy10:Sy8 :2;
    !!VRy11:Sy7 :2;
    !!VRx2:Sy10 -y11;
  !!en:;
  !!if&x3<1:;
    !!VRy6:Sy5 +36;
    !!UN:Cy6/4/?y7;
    !!UN:C4199503/2/?y8;
    !!VRy10:Sy8 :2;
    !!VRy11:Sy7 :2;
    !!VRx3:Sy10 -y11;
  !!en:;
  !!VRy3:Sy5 +24;
  !!UN:Cy3/4/x2;
  !!VRy4:Sy5 +28;
  !!UN:Cy4/4/x3;
!!en:;
!!VRv1:Sy1;
igrik
Код
!?FU880001; [получение описания вторичного навыка]
; x1 - номер втор.навыка     (0...27)
; x2 - уровень втор. навыка  (0...4)
!!VRy1:Sx1 *16;
!!VRy2:Sx2 *4 +6917512 +y1;
!!UN:Cy2/4/?y1;
!!SN:X?y3 Xy1 X?z4 Xy3;
!!IF:M0/4/^%Z4^;
Barin
Нужно сделать так, чтобы после каждой битвы не появлялось окно: победитель\проигравший.

Берсеркер однажды помог мне отключить сообщение об ограничении опыта: !#UN:C5125902/4/34281 C5125907/1/144; Думаю по такому принципу можно решить задачу.

Поможет кто?

Цитата
Код:
4771EE EB6490909090
47729B EB
Первое для окна победы, второе - для поражения.

Это написал мне gamecreator. Но я то не знаю как это оформить в готовый скрипт.
Есть непонятная подсказка:

[ spoiler]Это формат бинарного патча для BinMagic. Но, я так понимаю, ты хочешь чтобы всё было в одном файле. Тогда формат патча такой:
Код:
[16-й адрес] [16-е данные]
Разбиваешь данные на группы по 8, 4 и 2 символа (то есть 4, 2 и 1 байт), например:
Код:
4771EE EB649090 9090
47729B EB
Теперь вычисляешь для каждой группы адрес. Это адрес в строке плюс половина количества символов (то есть количество байт) данных перед группой. Например:
Код:
4771EE+0 EB649090
4771EE+4 9090
47729B+0 EB
Изменяешь порядок байт в числах-данных на обратный, чтобы потом легко перевести их в 10-ю систему, например:
Код:
4771EE+0 909064EB
4771EE+4 9090
47729B+0 EB
Переводишь на калькуляторе числа в 10-ю систему, например:
Код:
4682222 2425382123
4682226 37008
4682395 235
Всё! Подставляешь их в UN:C:

!!UN:C[адрес]/[кол-во байт]/[данные];[ /spoiler]

P.S. Задача решена.
Barin
Вопрос не по ERM. Как сделать, чтобы в меню кнопка "Сценарии" не работала. Деф можно сделать прозрачным, осталось отменить нажатие на неё.

Мне нужно чтобы работала только кнопка "Кампании".
hippocamus
Изменить координаты кнопки "Сценарии". Убрать её глубоко вниз или вправо.
Barin
Цитата(hippocamus @ 12 Oct 2015, 21:26) *
Изменить координаты кнопки "Сценарии". Убрать её глубоко вниз или вправо.

Как это сделать? У меня наверное не получится, если это exe надо править.
hippocamus
Можно бинарным патчем. Может, кто адрес подскажет, спроси.
igrik
отвечу и тут, мож кому еще пригодится
Код
сместить кнопки далеко за пределы экрана: для бин файла
; кнопка "Синглплеер"
63E6B0 FFFD
; кнопка "Мультиплеер"
63E6B8 FFFD
; кнопка "Обучение"
63E6C8 FFFD
; кнопка "Во имя богов"
456C6C AAAA
; кнопка "Клинок Армагедона"
456CE6 AAAA
; кнопка "Возраждение Эратии"
63BBF0 AAAA
; кнопка "Выбрать"
63BBF8 AAAA
Barin
Цитата(feanor @ 20 Mar 2014, 17:22) *
Заменить деф у героя в бою.

Код
!!UN:C6919200/4/?y10;
!!VRy51:S0 *4 +y10 +21508; (0 - левый, 1 - правый)
!!UN:Cy51/4/?y52;

!!SN:E5622208/2/^ch17.def^; (таки имя дефа)
!!UN:Cy51/4/v1;

!!UN:Cy52/4/?y53;
!!VRy53:+4;
!!UN:Cy53/4/?y54;
!!SN:Ey54/2/y52;


Таки да, можно делать героев с уникальными боевыми моделями.


Почему не работает? Вставлял, проверял через !?BA0;
Игра пишет ошибку в: !!SN:E5622208/2/^ch17.def^; (таки имя дефа) Команды E нет в справочнике и при чём тут имя дефа в звуковой команде...
hippocamus
Потому что это код для Эры, а не ВОг. В Эре есть !!SN:E
Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.