Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 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
Druin
Первый пункт простм чет/нечет проверяется... smile.gif

Тэкс... ну если по долгому, но более понятному пути, то делением на два доходишь до нужного бита... Однак ентот путь не совсем правильный, поэтому формулу вспоминать не буду...
А так надо логическое И применить... Пойду матчасть смотреть по логическим операциям... если мну не опередят напишу чуть попозже...

зы. Хе-хе... надо перевод !!VR... smile.gif
Bourn
Цитата(SnoRT @ 15 Jun 2006, 13:01)
Всмысле? Например, у меня 255 получилось и как узнать, что там, например был вабран 1-ый вариант?

элементарно проверкой бита, те пишем в переменную(временную) текущее значение всех установленных флажков, а потом проверяем из временной уже, иначе значение собьется...
!!VRv1:&#;
!!IF&v1=#:M^OK^;


Добавлено ([mergetime]1150364655[/mergetime]):
ха, пока я постил Друин уже успел ответить smile.gif...
Druin
Опередили... dry.gif
Morn
А можно ли как-нибудь дать гномам такую абилку - пусть называется гномий хирд- шоб она наподобии абилки единорогов увеличивала защиту или давала умение блок трем находящимся позади гонома стэкам crazy.gif
SnoRT
Борн, Друин спасибо smile.gif Всё работает clapping.gif
SnoRT
Тут вопросик снова возник. У меня, например, диалог с полем ввода. Туда нужно ввести цифру из определённого промежутка. После этого интегрирую написанное число в v переменную и делаю с ним операции, ну это уже не важно. Вопрос такой, можно ли определить, игрок написал число или текст? Дело в том, что при интеграции через !!VR:V v переменная принимает значение 0 и если было введено число 0, и если был введён текст. Но число 0 мне нужно разрешить. А, получается, если кто-то вместо числа напишет какую-то либеду, это всё равно посчитается за ноль. Будет очень некрасиво выглядеть...
Bourn
1)создать процедуру проверки, если первый знак - цифра, то ее проверяем уже с символьным значением этой переменной
2)попробовать проверять так всю длинну...
SnoRT
Цитата(Bourn @ 17 Jun 2006, 17:54)
1)создать процедуру проверки, если первый знак - цифра, то ее проверяем уже с символьным значением этой переменной

Вот как произвести нечто подобное я и хотел узнать rolleyes.gif
Bourn
Цитата(SnoRT @ 17 Jun 2006, 13:47)
Вот как произвести нечто подобное я и хотел узнать rolleyes.gif

ну допустим так, напишу маленькую процедурку...
ZVSE
!?PI;
!!VRz1:S^123r^;
!!FU1:P1;//номер z переменной
!!FU&v1=0:E;//если флаг не установлен - выходим
!!IF:M^%Z1^;

!?FU1;
!!VRz2:M1/zx1/0/1; //в х1 передадим номер z переменной
!!VRv1:C1;//установим флаг, если найдеться число выйдем
!!VRz2:U^0^;!!FU&1:E;
!!VRz2:U^1^;!!FU&1:E;
!!VRz2:U^2^;!!FU&1:E;
!!VRz2:U^3^;!!FU&1:E;
!!VRz2:U^4^;!!FU&1:E;
!!VRz2:U^5^;!!FU&1:E;
!!VRz2:U^6^;!!FU&1:E;
!!VRz2:U^7^;!!FU&1:E;
!!VRz2:U^8^;!!FU&1:E;
!!VRz2:U^9^;!!FU&1:E;
!!VRv1:C0;//число не нашли сбросим флаг
Druin
Цитата(SnoRT @ 17 Jun 2006, 05:03)
Тут вопросик снова возник. У меня, например, диалог с полем ввода. Туда нужно ввести цифру из определённого промежутка. После этого интегрирую написанное число в v переменную и делаю с ним операции, ну это уже не важно. Вопрос такой, можно ли определить, игрок написал число или текст? Дело в том, что при интеграции через !!VR:V v переменная принимает значение 0 и если было введено число 0, и если был введён текст. Но число 0 мне нужно разрешить. А, получается, если кто-то вместо числа напишет какую-то либеду, это всё равно посчитается за ноль. Будет очень некрасиво выглядеть...

Добавь единицу (иль как хош) в морду (то есть слева), ноль превратиться в десятку... а там математика... wink.gif
Sergiyua
В скрипте про силу удара магией вводятся только числа, причем минимум и максимум указан в скрипте (Автор скрипта Sonic). Может там есть для Вас нужная информация.
SnoRT
Спасибо, вариант Друина понравился более rolleyes.gif

Тут ещё проблемка... Можно как-нить поставить иммунку ко всем негативным и атакующим спеллам, причём только своим кричерам. Через триггер !?MR можно ставить как у големов и как у дварфов, сошёл бы любой вариант. Но у этих триггеров приёмники по стэкам можно только проверять, т.е. по типу крича можно поставить иммунитет, а по стэку в битве - только проверить. А нужно только на моё войско. Можно ставить флаг на дракона моим существам, но это полный иммунитет и неизвестно какие ещё свойства драконов... С теми же флагами можно поставить иммунитет к магии огня и к магии типа мысли, а остальную низзя... В общем, я не знаю sad.gif Вроде же такая функция есть в ВоГ'е у некоторых кричей с прибавлением опыта?! idontno.gif
DracoLich
2 SnoRT

А может попробовать через опыт? При начале битвы дать абилку, после битвы забрать
SnoRT
Ну, во-первых, эта абилика не у всех кричей, во-вторых, опыт - это же не только новая абилка, но и поднятые параметры, да и нужна работа также и с отключённой опцией опыта... idontno.gif
gamecreator
Цитата(SnoRT @ 27 Jun 2006, 09:34)
нужна работа также и с отключённой опцией опыта

спроси у Солмира как gigi.gif
SnoRT
Цитата(gamecreator @ 27 Jun 2006, 19:51)
Цитата(SnoRT @ 27 Jun 2006, 09:34)
нужна работа также и с отключённой опцией опыта

спроси у Солмира как gigi.gif

Ты не понял. Не, ну я конечно могу сделать, чтобы при загрузке игры скрипт включался автоматом laugh.gif
Bourn
Цитата(SnoRT @ 27 Jun 2006, 12:54)
Ты не понял. Не, ну я конечно могу сделать, чтобы при загрузке игры скрипт включался автоматом laugh.gif

соответственно и отключался так же
SnoRT
Ну... Я.... А мне никто не поможет про иммунитет? unsure.gif

Добавлено ([mergetime]1151406606[/mergetime]):
Цитата(Bourn @ 27 Jun 2006, 21:15)
соответственно и отключался так же

Мне другое надо sad.gif
SnoRT
Ээээй! Ну кто-нибудь мне поможет? sad.gif 898-ой пост...
DracoLich
2 SnoRT

Снорт, я тут накопал кое-что: biggrin.gif
!?BG0;
!!BH:C?v1258/?v1259/d/d;
!!BG&v1259>21|v1258=18/v1258=15/v1258=16/v1258=17/v1258=42/v1258=45/v1258=47/v1258=50/v1258=54/v1258=57/v1258=59/v1258=60:A0;
т.е. если наводишь Взрыв/берсерк/удар молнии (любой) и т.д. на стек далее 21, то он недействует. Попробуй так же
C@HeK
Я тут скрипт небольшой написал типа вы берете артефакт и зомби строят город
ZVSE
!?OB37/6/0;
!!UN: I 49/71/0/98/0/98/4/0;
!!IF:M^Тут текст^;
!!CA-1 : N^Город зомби^;
Помогите новичку и не смейтесь плиз pray.gif pray.gif pray.gif pray.gif

Добавлено ([mergetime]1151934563[/mergetime]):
В чем ошибка захожу в игру и она выкидывает
DracoLich
Щас протестим...
C@HeK
Ну чё blink.gif
DracoLich
А нафига ты написал !!СА-1???? Ты же ставишь замок УЖЕ в определенных координатах.
ZVSE
!?OB37/6/0;
!!UN:I49/71/0/98/0/98/4/0;
!!IF:M^Зомби строят город^;
!!CA49/71/0:N^Город Зомби^;
C@HeK
Спасибо ща переделаю good.gif good.gif good.gif good.gif

Добавлено ([mergetime]1151935099[/mergetime]):
Ура gigi.gif gigi.gif gigi.gif gigi.gif все работает.Ещё раз спасибо, а я голову ломал че за фигня biggrin.gif
C@HeK
Можно сделать так чтобы замок на карте исчезал а через 2 месяца появлялся опять?
SnoRT
Ну это смотря как... Можно его просто удалить и через два месяца поставить такого же типа замок. Только он будет как новенький. Если же с сохранением всех строений, заклинаний, названия замка и прочей либеды, то придётся ещё вносить все эти данные в переменные перед удалением, а при поставке нового это всё поставить smile.gif

Добавлено ([mergetime]1151972327[/mergetime]):
А! Ну я как понял, нужен же скрипт, а не как его делать smile.gif Щас напишу smile.gif
DracoLich
!#TM5:S28/28/1/255; - устанавливаем таймеры первый сработает в конце месяца
!#TM6:S56/56/1/255; - второй в конце второго месяца
!?TM5;
!!UN:Ox/y/l; - удалить объект в координатах
!?TM6;
!!UN:Ix/y/l/98/u; - поставить замок в координатах (u - тип замка)
SnoRT
Всё то хорошо получится, только замок придётся заново обстраивать, у него будет другое имя и другие заклинания в гильдии магов...
В общем... На форуме решил не выкладывать, сохранил в блокнотике. Спрашиваете - зачем? Скачайте и посмотрите no2.gif
З.Ы. При посещении объекта с координатами 13/12/1 замок в координатах 50/50/0 исчезает, а через два месяца снова появляется.
З.З.Ы. Не проверял.
DracoLich
Дык про постройки он ничего не уточнял... biggrin.gif
SnoRT
Ну эт так, на всякий случай gi.gif

Добавлено ([mergetime]1151988030[/mergetime]):
Цитата(DracoLich @ 04 Jul 2006, 04:18)
!!OW:C?v104; - установить хозяина героя

Так, наверно всё-таки правильней будет:
!!HE-1:O?v104;
SnoRT
Драколич, нифига не работает sad.gif
DracoLich
Когда колдуешь ты, все работает... Когда комп - по барабану! sorry.gif idontno.gif
SnoRT
Там во-первых, указывается же позиция на поле боя, а не стэк... И всё равно не действует idontno.gif
C@HeK
Всё то хорошо получится, только замок придётся заново обстраивать, у него будет другое имя и другие заклинания в гильдии магов...
В общем... На форуме решил не выкладывать, сохранил в блокнотике. Спрашиваете - зачем? Скачайте и посмотрите
З.Ы. При посещении объекта с координатами 13/12/1 замок в координатах 50/50/0 исчезает, а через два месяца снова появляется.
З.З.Ы. Не проверял.
Всё пашет а постройки на !@# заново отстроить можно
Zantetsuken
Bourn, насколько я помню ты тут модератор, так что расчисть немного "завалы" в этой теме. А то "руководством по ERM" это никак не назвать.
Druin
Сделаем... давно собираюсь...
C@HeK
Как передвинуть объект из точки 44 67 в 40 51?
DracoLich
Удалить его из точки 44/67/0 и поставить в точку 40/51/0.
!!UN:O44/67/0;
!!UN:I40/51/0/t/u; - где t - тип объекта, u - подтип

Убрать/поставить, потом ЕРМ прописать задание/награду.
C@HeK
А почему глюк в этом
!?LE6/69/0;
!!HE-1:K;
!!UN:I8/68/0/22/22;
Хочу поставить гроб, а ставится случ. монстр! banghead.gif banghead.gif banghead.gif
Bourn
если у объекта нет подтипа то ставим 0
DracoLich
Если объект без подтипа, просто ставится /
!?LE6/69/0;
!!HE-1:K;
!!UN:I8/68/0/22/;
Bourn
Цитата(Druin @ 12 Jul 2006, 17:45)
Сделаем... давно собираюсь...

я думаю сделать надо так:
1)кто задал вопрос и все ответы на него, заключаем в одно сообщение, где автор-автор вопроса, + добавить выделения вопроса и ответов(если их несколько)
2)резать флуд полностью, те что есть в сообщениях
3)ктото дает скрипт, и не знает что в нем работает не верно, надо кидать в .....мда гдето я тут видел темку... ну ладно, вобщем в тему где исправляют ошибки в скриптах

Добавлено ([mergetime]1152859841[/mergetime]):
2 DracoLich
правильный синтаксис это постановка 0, тк то что ты не поставил есть 0
Рогатый Змий
А вот у мня один простенький вопрос biggrin.gif
А как сделать так чтоб герой встая в одну координатную точку выводилось сообщение с одной галочкой(M^туда нельзя) и он телепортировался в другую точку.
DracoLich
Ставишь событие в эту точку:
!?LEx/y/l; - x, y, l - параметры триггера, в данном случае - координаты
!!IF:M^Туда нельзя^; - ресейвер триггера
!!HE-1:Pa/b/c; - a, b, c - здесь координаты, куда попадет герой
Malcolm
Здрасте. Я большой фанат героев 3, но с Вашим творением пока не знаком (сегодня скачал v3.58f, еще не играл). Однако мне всегда не нравилось, что в Конфлюксе птички плодятся излишне быстро. Мне порекомендовали скачать ВоГ, потому как в нем можно сделать все, что душеньке угодно. Почитав о Ваших новшествах, мне, конечно, понравилось не все (думаю я не один такой), но многое заинтересовало. ИМХО, возможность отключить лишнее - правильное решение для подобного проэкта - молодцы. Однако я что-то не нашел толкового описания ERM на русском (к несчастью с английским я не особо дружу sad.gif ). Не могли бы Вы сказать мне, где можно почитать про програмирование на ERM? Мне бы в первую очередь хотелось написать глобальный скрипт (если я правильно понял терминологию ВоГ-а - это тот, который автоматически подключаеться к любой карте самой игрой), чтобы базовый прирост птичек стал 1 (соответственно 2 с замком и 3 с граалем). Для начала хотя-бы это, ну а если возможно - сделать, чтоб при постройке грааля в конфлюксе не давался спелл "грохот титана". Ну и если дойдет до того - хочу добавить еще одно строение в Некрополь - апгрэйд преобразователя скелетов (строить так-же как апгрэйд военного здания или хранилища ресурсов, т.е. "поверх" преобразователя) - в котором можно было бы за денюшку переделывать рыцарей в дет-найтов, а фанатиков и магов - в личей (что-то подобное сделано в HEROES3 TE, но они правили экзэшник). А может быть это все уже сделано, и можно не морочиться?

Заранее благодарю.

З.Ы. А какая последняя версия руссификации ВоГ-а? На сайте _http://hmm3.fclan.ru/ (написано - официальный сайт поддержки ВоГ) есть какая-то руссификация, но написано, что это бета версия, и последнее обновление аж в 2004 году (сейчас его качаю). Неужели до сих пор не закончено тестирование, или это просто я попал на левый сайт?

З.Ы.Ы. С игрой шел HTML документ с описанием фич ВоГ-а. На английском. Понял я в лучшем случае 1/3. Нет ли подобного описания на русском?


http://forum.df2.ru/index.php?showtopic=2457 - Это про ЕРМ

http://forum.df2.ru/index.php?showtopic=1942 - по описанию
Рогатый Змий
Блин запарился.... mad.gif
короче как поместить на карту объект-огонь
Какой номер под-типа?
Ну вот картинка чтоб не перепутали...
!!UN:I66/5/0/63/?;


Никак... mad.gif
Demiurg
Расшарьте плз следующие вещи.
1)Как зафиксировать событие, состоящее из изменения слота артифакта. То есть если артифакт поменял свой слот вследствие каких-либо манипуляций, то функция должна перехватить управление. Важно, чтобы работала для основных слотов, рюкзачные - не в счет.
2)Как узнать, что этот артифакт дает игроку? Понятно, что можно полезть в таблицы и посмотреть, но каждый волен придумывать артифакты, какие ему хочется. И работоспособность скрипта не должна от этого зависеть. Пока я пользуюсь следующим вариантом:

...считываю нужные параметры...
!!HE-1:A-3; Отнимаю у игрока катапульту
!!HE-1:A1/v99/16; Ставлю нужный артифакт(v99) на место катапульты
...считываю изменненные параметры
!!VRv99:*-1;
!!HE-1:Av99; отнимаю данный артифакт
!!HE-1:A1/3/16; возвращаю катапульту на место

То что дает артифакт - разница в изменненных характеристиках и обычных. Но мне кажется, что это извращение так делать.
DracoLich
Цитата
1)Как зафиксировать событие, состоящее из изменения слота артифакта. То есть если артифакт поменял свой слот вследствие каких-либо манипуляций, то функция должна перехватить управление. Важно, чтобы работала для основных слотов, рюкзачные - не в счет.

!!UN:A#1/#2/$; - Установить/проверить/получить информацию про артефакт
#1 – номер артефакта
#2 – тип информации
= 2 – позиция на теле
$ - значение

Позиции:
0 Отсут. (только рюкзак) например, Грааль
1 Голова
2 Плечи
3 Шея
4 Правая рука
5 Левая рука
6 Торс
7 Кольцо (любая рука)
8 Ноги
9 Слот разное (любой)
10 Баллиста (Боевая машина 1)
11 Тележка боеприпасов (Боевая машина 2)
12 Палатка первой помощи (Боевая машина 3)
13 Катапульта
14 Книга заклинаний
Просто помещаешь данный ресейвер перед триггером, и он начинает работать. Только если герой уже имеет данный артефакт, и если изменить его место расположения (арта), то нужно будет снять арт и снова надеть, иначе арт так и останется там, где был.
А нафига узнавать св-ва арта? Если ты его собираешься изменить - то как? Но другого способа, помойму, нет
Demiurg
Цитата(DracoLich @ 22 Oct 2006, 15:45)
Цитата
1)Как зафиксировать событие, состоящее из изменения слота артифакта. То есть если артифакт поменял свой слот вследствие каких-либо манипуляций, то функция должна перехватить управление. Важно, чтобы работала для основных слотов, рюкзачные - не в счет.

!!UN:A#1/#2/$; - Установить/проверить/получить информацию про артефакт
#1 – номер артефакта
#2 – тип информации
= 2 – позиция на теле
$ - значение

Позиции:
0 Отсут. (только рюкзак) например, Грааль
1 Голова
2 Плечи
3 Шея
4 Правая рука
5 Левая рука
6 Торс
7 Кольцо (любая рука)
8 Ноги
9 Слот разное (любой)
10 Баллиста (Боевая машина 1)
11 Тележка боеприпасов (Боевая машина 2)
12 Палатка первой помощи (Боевая машина 3)
13 Катапульта
14 Книга заклинаний
Просто помещаешь данный ресейвер перед триггером, и он начинает работать. Только если герой уже имеет данный артефакт, и если изменить его место расположения (арта), то нужно будет снять арт и снова надеть, иначе арт так и останется там, где был.
А нафига узнавать св-ва арта? Если ты его собираешься изменить - то как? Но другого способа, помойму, нет

1)Если не ошибаюсь, то это только для конкретного артифакта, а нужно для любого. То есть чтобы при изменении слота любого артифакта запускалась функция. Можно эту команду прогнать через цикл и проверить для всех артифктов. Но вряд ли это хорошее решение.
2)Мне нужно узнать, на сколько едениц изменяет знания артифакт. Чтобы при снятии артифакта повышающего знания отнимать у героя "лишнюю" ману.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.