Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 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
Iv
Цитата(Sergio @ 21 Feb 2009, 10:59)
ЗА что в одиночной игре начисляются очки?

Добавлено ([mergetime]1235203171[/mergetime]):
Народ кто нибудь подскажет как я могу играть по инету в многопользовательской игре с другим игроком?

1. FizMiG
2. Hamachi

PS Поиск рулит
sergroj
Цитата(Fatalist @ 21 Feb 2009, 20:52)
Архива со скриптом нет) как и def файла) Я хотел узнать какая функция или строка в тексте скрипта отвечает за проверку почвы, то есть если почва снег-то стенки подземелья "ледяные"

Лучше спроси автора (hippocamus, если не ошибаюсь) в PM.
MasterOfPuppets
Вот интересно: если убрать пробелы и все комментарии в воговских скриптах, увеличит ли это заметно скорость игры? Да, эти элементы игнорируются ERM, но на игнор наверняка ведь тоже нужна дополнительная мощность процесса.
Строка ERM-скриптера вмещает около 12 тыс. символов, так что средний скрипт уместиться на 3-4 строчках.
Сатарыч
На мой вопрос ответьте плизззз
ShadowDF2
Цитата
Вот интересно: если убрать пробелы и все комментарии в воговских скриптах, увеличит ли это заметно скорость игры? Да, эти элементы игнорируются ERM, но на игнор наверняка ведь тоже нужна дополнительная мощность процесса.
Строка ERM-скриптера вмещает около 12 тыс. символов, так что средний скрипт уместиться на 3-4 строчках.

Может и нужна. Но гораздо лучше переработать скрипты, ибо многие из них не менялись с 53 где-то версии, и код ужасно неоптимизирован, да и просто некоторые скрипты написаны новичками, и там ужа что творится... DracoLich начинал переработку, но там придется еще использованные переменные переписывать, и малость идея забылась laugh.gif
2 Сатарыч
Как видишь, эта функция только получает laugh.gif
Попробуй вместо "?x2" поставить "3"
sergroj
Цитата(Master Of Puppets @ 23 Feb 2009, 14:01)
Вот интересно: если убрать пробелы и все комментарии в воговских скриптах, увеличит ли это заметно скорость игры?

Нет. На скорости сказываются только пробелы внутри команды. Коментарии сказываются только на времени загрузки скриптов (когда выполняются инструкции). И то и другое влияет очень слабо.

Добавлено ([mergetime]1235382253[/mergetime]):
Цитата(Сатарыч @ 21 Feb 2009, 02:23)
Как писалось ранее, с помощью этой функции можно лишь узнать это значение. А как можно задать нужное значение?

Никак. Для этого надо иметь хук в функции, которая эти значения вычисляет.
Сатарыч
Блин, позарез нужно как то эту хрень менять......
major
нужно просто добавить еще одну хрень в функцию, чтоб менять другую хрень... laugh.gif

в смысле, тебе нужно вручную устанавливать доступные монстру клетки?
Сатарыч
Именно. В !!UN:C сам мало шарю.
major
Даже если через ту функцию устанавливать значения, то это ниче не меняет.
Поставь монстру скорость 25, и обрабатывай щелчки на поле битвы.
Сатарыч
И как я тогда буду запрещать монстру на них вставать?
Можно с помощью !!BG:A0; но ИИ не поймёт и будет постоянно повторять ненужное, отменяемое действие
major
Я че-то не до конца понимаю, какая такая область может быть в бою, куда нельзя становиться.
Ну уменьши скорости, а если все равно туда идет, смести вправо-влево-вверх-вниз. Ну я не знаю, можно наверно как-то обойти.
Хотя, не зная суть проблемы, не выйдет дельных советов.
Сатарыч
Суть проблемы: нужно запретить игроку или компьютеру делать ход монстром в определённую точку на поле, незавиимо от скорости
Iv
невидимое препятствие?
Сатарыч
Пробовал, слишком много переменных тратится на запоминание их позииций (таких позиций несколько). + как потом убрать это препятствие?
major
ну можно попробовать скастовать Устранение преград, а выделить несколько v-переменных - не проблема.
Сатарыч
Можно, но нужно убирать это препятствие без видимых эффектов (без анимации и звука). И ещё, разве устранение препятствия дейтвует на невидимые препятствия? Где то я читал, что не действует....
IQUARE
Куда делась моя тема про скрипт "Машина времени". Или его убрали?
hippocamus
Я не трогал. Ищи.

Вопрос: как можно добавить свою строку в модификаторы морали и удачи?
Например: "Неделя Везения: +1 Удачи"
IQUARE
Так я искал в поиске все сообщения участника "IQUARE", но ничего не нашел
Сатарыч
Читал я тут про то, что некоторые функции сравнения работют неправильно (<>, <=). Можно поподробнее? Какие конкретно работают не так и как они работают на самом деле? В какой версии ВоГ они работают правильно(если такая есть)?
major
Неправильно работает check синтаксис, вроде >, >= и <>. Все это исправлено в WOG++ и TE++.
sergroj
Сатарыч, это только если использовать их в масой команде (пример: !!CM:I<6). Там правильно работают только "=", ">" и ">=".
Но если писать их в условии (!!IF&v1<6:M^^), то все ок.
Мурсинушка
А для чего может быть нужно писать операторы сравнения НЕ В УСЛОВИИ?
Сатарыч
А, ясно, спасибо.
ShadowDF2
Цитата
А для чего может быть нужно писать операторы сравнения НЕ В УСЛОВИИ?

!!CM:I>6;
Флаг 1 станет Истиной, если значение I больше 6, и 0, если меньше. Т.е. итог проверки пишется во флаг 1. В принципе, я не вижу большой разницы между
!!CM:I?y1;
!!..&y1>6:...
и
!!CM:I>6;
!!..&1:...
Единственное, что скорость выполнения разная, хотя точно не скажу.
Lindar
Вопрос: Как пользоваться !!GE?
Цель: Каждые 2 недели у всех игроков должна отниматься вся мана.
gamecreator
!!TM тебе в помощь
Lindar
Блин, точно ведь good.gif протормозил biggrin.gif 100 лет в ерм не лазил
Farlin
Люди, помогите пожалуйста! В !?ВА убираю полностью один стек монстров у героя противника. Если этот стек стоит не в последнем слоте героя, сдвигаются на 1 все бонусные линии. Очень уж материт.
Вог мастер
Подскажите мне плиз мне бы хотелось, чтобы в произвольной карте появлялась хижина мага и глаз мага наугад где угодно штук 5 и того и того. Напишите плиз скрипт!
Сатарыч
Берсеркер давно выкладывал Erm Editor++
1. Есть ли эта версия на русском языке? Если есть, можно ссылку? Если нет, ссылку на другую русскую версию.
2. В архиве поидее должны быть справки, но их там нет.....
ShadowDF2
Цитата
Люди, помогите пожалуйста! В !?ВА убираю полностью один стек монстров у героя противника. Если этот стек стоит не в последнем слоте героя, сдвигаются на 1 все бонусные линии. Очень уж материт.

Скорее всего баг (
Цитата
Подскажите мне плиз мне бы хотелось, чтобы в произвольной карте появлялась хижина мага и глаз мага наугад где угодно штук 5 и того и того. Напишите плиз скрипт!

Можно генерировать числа и смотреть, если ли в координатах что-либо, если пусто, можно класть туда объект crazy.gif Написать?
Цитата
1. Есть ли эта версия на русском языке? Если есть, можно ссылку? Если нет, ссылку на другую русскую версию.

Ссылку на англ. версию плзз, мб предоставлю чуть позже и русскую
Сатарыч
Цитата(Berserker @ 23 Jan 2009, 11:06)
Erm Editor++
Вес: 700 КБ
Описание: Патченный редактор без левых тегов
Скачать
Вог мастер
Да напиши!
Сатарыч
Через ERT можно создавать свои "z" переменные. А можно им во время игры присвоить новое значение?
major
неа, игра ругается нериятными словами.
ShadowDF2
Цитата
Подскажите мне плиз мне бы хотелось, чтобы в произвольной карте появлялась хижина мага и глаз мага наугад где угодно штук 5 и того и того. Напишите плиз скрипт!

2 варианта. Кто знает методы лучше, пишите письма
CODE
ZVSE
**Помещает глаза вместо Камней знаний и Хижины вместо мельниц. Т.к. функция
**прыгает через несколько объектов, дабы заменить как можно меньше
**(в среднем, как раз 5 и того и того), все равно возможно, что из 2ух камней
**на карте, они оба останутся( Ибо их мало. Юзабелен для больших карт.
!#TM1:S1/1/1/255; - нужен таймер, ибо в PI объекты нельзя заменять
!?TM1;
!!TM1:S1/1/1/0; - деактивация таймера сразу поле срабатывания
!!UN:U100/-1/?y1 U112/-1/?y3; получаем число камней и мельниц

!!UN:X?y-1/?y-2; - получаем размер карты
!!VRy-3:Sy-1 :36 -1; - погрешность для размера карты, (1..4) -1

!!VRy2:Sy1 :5 -y-3; - получить число = 1/5 всех камней + погрешность
!!VRy4:Sy3 :5 -y-3; - получить число = 1/5 всех мельниц + погрешность
!!VRy2&y2<2:S2; - если значение слишком мало, установить 2
!!VRy4&y4<2:S2; - тоже самое

!!DO29887/1/y1/y2&y1>0:P27/100/y1/y2; запустить функцию y1 раз шагом y2, если
**y1 неотрицательно, передать значения x1=номер объекта для вставки (глаз=27),
**x2=заменяемый объект (камень, 100), также передать число объектов (x3) и шаг (x4)
!!DO29887/1/y3/y4&y3>0:P37/112/y3/y4; ^см выше

!?FU29887;
!!VRy-1:S0 R1; - генерация случайного прыжка, чтобы избежать постоянной замены
**одних и тех же объектов (если играется на той же карте)
!!VRx16:+y-1; - добавление прыжка (+0..1)
!!VRy-1:Sx16 +x4; - проверка на некорректное значение номера объекта,
**ибо при шаге >1 возможна ситуация, когда x16>конечного значения функции,
**и ерм выдает немного ошибок
!!VRx16&y-1>x3:Sx3; - фикс превышающего значения
!!FU&y-1>x3:E; - выход при превышаемом значении
!!UN:Ux2/-1/x16/1 Ov1/v2/v3/1 Iv1/v2/v3/x1/0; - найти координаты, удалить старый
**поставить новый

** Просто помещает 6 глаз и 5 хижин в случайные точки карты
!#TM1:S1/1/1/255; - таймер, см в пред примере
!?TM1;
!!TM1:S1/1/1/0;
!!UN:X?y-1/?y-2; получаем размер
!!VRy-1:-1; отнимаем от размера единицу, ибо возможна "посадка" объекта на
**координаты вроде x/108, что выходит за карту,и видно лишь "крышу" объекта
!!DO29887/1/11/1:Py-1/y-2; - запустить функцию 11 раз, передав размер карты x1 и
**x2=0 если нет подземелья, x2=1 если есть

!?FU29887;
!!VRy-1&x16<7:S27; - на первых 6 шагах помещаем глаза
!!VRy-1&x16>6:S37; - на вторых 5 - хижины
!!VRy1:S0 Rx1; - генер (0..x1) координату х
!!VRy2:S0 Rx1; - ^ только y
!!VRy3:S0 Rx2; - генер (0..1), в зависиомти от наличия подземелья, координату уровня
!!UN:Ey1/y2/y3; - проверить, можно ли поместить туда объект. Если флаг 1 истина,
*значит нет. На воде и на Скалы (темнота подземелья) флаг устанавливается истина.
!!VRx16&1:-1; - если тип поверхности вода или подземельная тьма, или поместить
**нельзя, отнять 1 от номера круга.
!!FU&1:E; - и тут же выйти
!!UN:Iy1/y2/y3/y-1/0; -


Добавлено ([mergetime]1238151566[/mergetime]):
Цитата
Erm Editor++
Вес: 700 КБ
Описание: Патченный редактор без левых тегов

Тот же самый редактор, но без тегов :idontnow:
Чего там переводить?
MasterOfPuppets
Конструкции If-Else-EndIf нормально работают без двоеточий перед точкой с запятой. Не уверен, но возможно, что в таком случае они даже меньше лагают.
Вопрос очевиден: зачем усложнять?
ShadowDF2
^К какому это посту? о_О
Команда IF:M тоже выводит сообщение, имея вместо ; на конце : , но перед этим грязно ругает.
MasterOfPuppets
Я не совсем то имел в виду.
Везде пишут:

!!if&условия:;
!!el:;
!!en:;

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

!!if&условия;
!!el;
!!en;

Преимущества? Конечно же, небольшие. Но для тех, кто часто использует эти конструкции, всё же ощутимые:
1)Не надо печатать два символа - достаточно одного. ->
2)Соответственно, не надо зажимать shift. ->
3)Соответственно, меньше риска, что по ошибке поставишь два двоеточия вместо :;

Однако, не исключено, что в ВОГ 3.59 между двоеточием и концом команды поставят ещё что-то (хотя ума не приложу, что там можно поставить). Это и есть вопрос - оставлены ли эти двоеточия специально для ВОГ 3.59 или же это просто недоработка?
major
Мне кажется, это скорее условность. Стандартные конструкции ресиверов - !!XX:комманды; здесь скорее просто идет по такой же схеме, но так как комманд нет, то и получается !!XX:; где XX - if, el, en.
hippocamus
Но if, el и en это не ресиверы. Это просто составной оператор. Первое - это оператор, остальное - скорее теги.
SCREAMERIP
Пожалуй спрошу здесь:
Как ставить новые скрипты, сиречь новые ВоГ опции? (или я путаю понятия?)
если копировать в Data/s, то в игре никаких новых изменений не происходит.
major
Видимо, нужно включить вогификацию.
SCREAMERIP
Цитата
Как ставить новые скрипты, сиречь новые ВоГ опции

Например - котёл с мифрилом.


только не надо расписывать как ставить именно котёл.
major
кидаешь скрипт в data/s, в настройках ВОГ включаешь добавленный скрипт (если к нему есть ers файл), он обычно должен появиться на вкладке собственные скрипты (самая нижняя).
MasterOfPuppets
Цитата
пишите письма

Второй скрипт - совершенство. Ни отнять, ни прибавить. А вот первый - имхо, переусложнён. Что-то я не вкурил, что за погрешности и для чего вообще вычислять размер карты. fie.gif

CODE
ZVSE
!?TM2&$day$=1/$once$=1; - день первый, первый активный игрок
!!UN:U100/-1/?y-1 U112/-1/?y-2; - получаем число камней и мельниц
!!VRy-3:Sy-1:5;!!VRy-4:Sy-2:5; - получаем число = 1/5 всех объектов
!!VRy-3&y-1<2:S2;!!VRy-4&y-4<2:S2; - если объектов слишком мало, установить кол-во заменяемых на 2
!!DO29887/1/y-3/1&y-1>1:P27/100/y-1; - пропуск значений в функцию, запуск
!!DO29887/1/y-4/1&y-2>1:P37/112/y-2; -//-
!?FU29887;
!!VRy1:Sx3-1; - отнимаем единицу от кол-ва для корректной генерации номера
!!VRy2:S1 Ry1; - генерируем случайный номер объекта
!!UN:P904/1 P905/0; - отключаем вывод сообщений об ошибке
!!UN:Ux2/-1/y2/1; - находим (или пытаемся найти) координаты объекта
!!UN:P904/0 P905/?y3; - проверяем, есть ли ошибка (объект уже заменён, а его номер сгенерирован повторно)
!!VRx16&y3>0:-1; - если ошибка - отнять 1 от кол-ва кругов функции
!!FU&y3>0:E; - и тут же выйти
!!UN:Ov1/v2/v3/1 Iv1/v2/v3/x1/0; уничтожить объект, поставить новый


В большинстве случаев "рискованные" команды рискованны лишь в кавычках. yes.gif

Цитата
нужен таймер, ибо в PI объекты нельзя заменять

Однако просто размещать - вполне.
ShadowDF2
^ +1, но обратное не было указано biggrin.gif

Добавлено ([mergetime]1238844698[/mergetime]):
как заставить сработать BG в начале боя? )
Функция запускается с триггера BG, но нужно точно знать, кто ходит. Для этого нужна BG:Q но она почему-то непонятно определяет в начале боя ходящего.
major
Ходили слухи, что нужно сделать насильное действие - бездействие, т.е. !!BG:A0; и после это можно определять текущего юнита. У меня такое не работало... sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.