Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ERM: Вопросы и ответы
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
sergroj
Цитата(gamecreator @ 24 Apr 2008, 03:25)
не очень корректная инструкция.
!?BR;
!!BMx:F?i;
!!VRj:Si&67108864;
!!VRi:|j;
!!BMx:Fj;

2 ошибки smile.gif
!?BR;
!!BMx:F?i;
!!VRi:|67108864;
!!BMx:Fi;
упс, пост оказался доисторическим
gamecreator
только одна. в последней строке i вместо j. а так все корректно работает. то, что это не самый оптимальный вариант - другой разговор
sergroj
!!VRj:Si&67108864; - в j обычно будет 0, а если в i этот бит был, то 67108864.
Соответственно, !!VRi:|j; - ничего не меняет
gamecreator
значит я запутался в бинарных операциях ЕРМа
Сатарыч
Для чего служат переменные x1-x16 и y-1...y-100 ?
gamecreator
первые - для передачи параметров функции, вторые - хз, временные наверно.
major
Переменные y-1...y-100 - локальные, т.е. они используются как обычные целочисленные переменные, но только внутри какого-нибудь триггера (функции) и по выходу обнуляются. Также их значения не сохраняются при сохранении игры. Грубо говоря это временные переменные.
Сатарыч
Тоесть эти переменные (y-1...y-100) обнуляются по завершению выполнения кода триггера. И при повторном выполнении этогоже триггера все равно равны нулю. Я правильно понял?

А для чего используются x1-x16 я так и не понял.
FakerNeo
!!FU1:P1/2/3/4;
!?FU1;
; в данном случае x1 =1, x2=2, x3=3, x4=4
major
Цитата(Сатарыч @ 03 Jul 2008, 22:11)
Я правильно понял?

Ага

Цитата(Сатарыч @ 03 Jul 2008, 22:11)
А для чего используются x1-x16 я так и не понял.

Цитата(FakerNeo @ 03 Jul 2008, 22:45)

!!FU1:P1/2/3/4;
!?FU1;
; в данном случае x1 =1, x2=2, x3=3, x4=4


То есть у функции (в данном случае FU1) могут быть до 16 параметров (в данном случае 4). Всесто 1/2/3/4 могут стоять переменные, например те же y-1...y-100:
!!FU1:Py-1/y-2/y-3/y-4;
т.е. при выполнении функции в значениях будут x1=y-1, x2=y-2, и т.д., и внутри функции FU1 ты можешь ими оперировать как хочешь, при выходе из функции они обнулятся. Также если ты используешь !!DO, то параметр x16 хранит значения шага функции, например:
!!DO10/3/7/2:P; где 3 - нач. значение, 7 - кон. значение, 2 - шаг;
при первом выполнении x16=3,
при втором - x16=5,
при третьем - x16=7.
gamecreator
дополню майора: хоть на самом деле в функции 16 параметров, но обычным способом(FU:P) можно задать лишь 15 (больше - ошибка).
Сатарыч
Спасибо
sergroj
Цитата(major @ 03 Jul 2008, 21:14)
Переменные y-1...y-100 - локальные, т.е. они используются как обычные целочисленные переменные, но только внутри какого-нибудь триггера (функции) и по выходу обнуляются. Также их значения не сохраняются при сохранении игры. Грубо говоря это временные переменные.

Только внутри триггера, но не функции. У функций y1..y100, у других триггеров - y-1..y-100.

Цитата(gamecreator @ 04 Jul 2008, 02:23)
дополню майора: хоть на самом деле в функции 16 параметров, но обычным способом(FU:P) можно задать лишь 15 (больше - ошибка).

Я задавал 16, работало.
hippocamus
У функций нету y-1? Разве? А у триггеров y1 есть, но с ними что-то не совсем в порядке.

Добавлено ([mergetime]1215444719[/mergetime]):
У функций нету y-1? Разве? А у триггеров y1 есть, но с ними что-то не совсем в порядке.
major
Не знаю как и что, но я использую y-1 и y1 как внутри функции, так и внутри триггеров, и все работает.
sergroj
Не удивительно, работать должно, но не всегда. Вот пример:
!?FU5;
!!VRy-1:S10;

!?CM;
!!VRy-1:S5;
!!FU5:P;
!!IF:M^%Y-1^;

Противоположный пример - вызвать из функции битву и в !?BA установить y1.
Сатарыч
Как с помощью скриптов удалить отряд, чтоб его просто не было, ни трупа, ничего?
gamecreator
хм... поставить тип существа -1. больше не знаю способов
FakerNeo
И кол-во в -1
Сатарыч
Не выходит.

Проблема вот в чём. Мне нужно убить определённый стек, если другой стек умирает. Пытался сделать это с помощью !!BM:K; , но она срабатывает только во время хода следующего стека. И то если во время этого хода ктото комуто нанесёт урон.

Как осуществить 2 эти смерти за 1 ход?
major
Что-то типа такого

Код
!?MF1;
!!MF:D?y1 N?y2; y1 - урон, y2 - стек
!!BMy2:N?y3 H?y4 L?y5; параметры стека - кол-во, хп, ост. хп
!!VRy6:Sy3 *y4 -y5; суммарное хп стека
!!BMy7&y6<=y1:K1000000; если сум. хп < урона, то стек сдохнет => убиваем нужный стек y7
Сатарыч
Спасибо, разобрался
Spartak
Можно ли сделать условием победы удержку одного или нескольких городов определённое количество недель?
Причём, при потере города чтобы была возможность плюсовать все предыдущие дни под твоим командованием.

Я думаю появилось бы много авторских карт на эту тематику.
Если это возможно, Гиппо, поставь такую опцию в твой редактор, в соответствующий раздел "правила".
gamecreator
с помощью ЕРМ
hippocamus
Спартак, вторую строчку не понял.
Кстати, в условиях победы есть 2 опции, которые прописаны в текстовиках, но отсутствуют в редакторе:
- уничтожить всех монстров
- выжить определённое время
Spartak
Цитата(hippocamus @ 14 Aug 2008, 18:58)
Спартак, вторую строчку не понял.

Ну вот смотри:
Захватываешь город и удерживаешь его 5 дней.
Всего нужно продержать неделю. У тебя его перехватили на некоторое время.
Затем ты пршёл главным, и захватил снова, а те 5 дней остаются в памяти, и после повторного захвате, соответственно, тебе остаётся продержать замок всего 2 дня.
(это как в CoD 2 - продержать базу какое то время, при этом тебе зачисляются очки)

Если это будет возможно, Гиппо, сооруди такой вариант для победы, где нужно выставить координаты замков (одного или нескольких) и количество дней, которое нужно продержать город в своей власти.
Сатарыч
Как создать такое усливие:

(с1 или с2 или с3) и с4 и с5 и с6 ?
DracoLich
!!VRc7|c1/c2/c3:S1;
!!..&c4/c5/c6/c7=1:...;
gamecreator
для ТЕ:
!!if|c1/c2/c3:;
!!if&c4/c5/c6:;
; тут действия
!!en:;
!!en:;
Сатарыч
Спасибо
Сатарыч
Цитата(sergroj @ 26 Sep 2007, 21:22)
Особенность !!BG
Если монстр совершает действие 6 (подойти и ударить), то с помощью BG:S можно проверять и менять позицию, с которой он будет бить.


Можно поподробнее?
hippocamus
Где можно найти описание стандартных расширенных диалогов ВоГ?
И формата текстового файла, для создания своих?
gamecreator
что за стандартные расширенные диалоги? (прям какое-то противоречие в предложении) это ты так !!DL обозвал? если да, то справка по нему в ЕРМ мануале
Septimus
У меня есть вопрос - как сделать ворам атаку ядом, как у виверн, не повышая им опыта? И сделать скорпикор без парализирующего яда. И летучим змеям со стрекозами дать слабость к воде на 25% и иммунитет к земле?
gamecreator
Цитата(Septimus @ 22 Aug 2008, 10:41)
И летучим змеям со стрекозами дать слабость к воде на 25% и иммунитет к земле?

это только через опыт
major
Вот так должно работать

Код
!?BF;
!!UN:C7961425/1/7; воры травят ядом (20% вероятность)
!!UN:C7961363/1/9; скорпикоры не парализуют

!?BG1;
!!BU:C=1;
!!FU&-1:E;
!!UN:C7961425/1/9;
!!UN:C7961363/1/6;

!?MR1;
!!MR:M?y-1 S?y-2 D?y-3; монстр, спелл, дамаг
!!VRy-4|y-2=16/y-2=20:S1; ледяная молния, кольцо холода
!!VRy-3&y-1=104/y-4=1:*5 :4; +25% урона змиям
!!VRy-3&y-1=105/y-4=1:*5 :4; +25% урона стрекозам
!!MR&y-1=104/y-4=1:Fy-3; установить дамаг
!!MR&y-1=105/y-4=1:Fy-3;

!?MR2;
!!MR:M?y-1 S?y-2; монстр спелл
!!VRy-5|y-2=10/y-2=12/y-2=18/y-2=23/y-2=24/y-2=50/y-2=54:S1; враж. магия земли
!!MR&y-1=104/y-5=1:F100; змии имунны к земле
!!MR&y-1=105/y-5=1:F100; стрекозы имунны к земле
sergroj
Цитата(Сатарыч @ 18 Aug 2008, 16:24)
Цитата(sergroj @ 26 Sep 2007, 21:22)

Особенность !!BG
Если монстр совершает действие 6 (подойти и ударить), то с помощью BG:S можно проверять и менять позицию, с которой он будет бить.

Можно поподробнее?

Ну, монстр встанет на позицию BG:S и ударит монстра, стоящего на позиции BG:D.
Septimus
Большое спасибо за скрипт!
Septimus
Только Кольцо холода летающим змеям и стрекозам дополнительного урона не наносит
major
Наносит, если посчитать, просто он не пишется.
Сатарыч
При лечении Палаткой первой помощи !?MF; срабатывает?
major
Нет, работает только !?MR2
Septimus
И ещё. Как можно сделать, чтобы у Циклопов была регенерация троллей, у улучшенных циклопов после их атаки на цель накладывался Paralyze (если есть такой спелл, в крейнем случае - окаменение). Плюс чтобы Джинн имел шанс ополовинивать вражеский отряд. Такое возможно?
major
Для всех этих действий очень пригодился бы триггер !?MF2, который срабатывал сразу после нанесения физ. дамаги. Жаль его нет.

По существу
1. Через опыт. Через скрипт будет не совсем корректно, т.к. при срабатывании морали или ожидании регенерация повторится, т.е. дважды за ход. Ну или экзешник подправить.
2. Накладывать заклинание получится только перед нанесением урона. Соответственно оно сразу же снимется. Если использовать !?BG1, то также получится не совсем правильно (закл наложится только после способностей след. существа - каст магии, регенерация и т.д.)
3. Сначала отполовинить, а затем нанести дамаг. Можно так попробовать

Код
!?MF1;
!!BG:N?y-1 E?y-2; кто бьет, кого бьет (стек)
!!BMy-1:T?y-3; тип атакера
!!BMy-2&y-2>-1:N?y-4; кол-во существ
!!VRy1:S0 R99; рандом 0-99
!!VRy-4&y-3=36/y1<5::2; если джин - 5% шанс скосить пол-отряда
!!VRy-4&y-4<1:S1; остается не меньше одного.
Septimus
3.Спасибо за скрипт! Попробую...
1.А как это через опыт?
2.Хотя бы перед атакой!
FakerNeo
Вот только рандом через VR:R - по-моему немного корявый (вроде как постоянно одно и тоже число выдает. Лучше использовать рандом через таймер. А вообще написать свой алгоритм и использовать оба способа - надежней...
major
Цитата(FakerNeo @ 28 Aug 2008, 13:43)
Вот только рандом через VR:R  - по-моему немного корявый (вроде как постоянно одно и тоже число выдает. Лучше использовать рандом через таймер. А вообще написать свой алгоритм и использовать оба способа - надежней...

Ну не знаю, я в своих скриптах уже года два использую VR:R и никогда не видел, чтоб он выдавал ожинаковые значения. 20% они и есть 20%, а 70% - 70%. Все нормально.

2Septimus
Ну вот так например
Код
!#EA94:F114/?v1;
!#EA94&v1>0:Bv1/1/114/100/50/50/50/50/50/50/50/50/50/50/50; 100% шанс регенерировать 50 HP Циклопам

С кастом паралича имхо не получится, так как будет работать только в рукопашной.
Septimus
Правильно. Они и в рукопашку пойдут. Я у них флаг такой поставил!
hippocamus
Рандом VR:R будет повторяться из раза в раз при перезагрузке. А рандом VR:T будет каждый раз разным. Оба нужны, но в разных случаях. Думай,что нужно тебе.
Сатарыч
Как узнать номер стека, на который кастуется магия?

Использую в !?MR2;
!!MR:N; не работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.