Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 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
FANaTWOG
Цитата
Похоже ты неправильно действуешь. У героя можно установить хоть все вторичные навыки, независимо от номера


Нет, я сначала хотел, чтобы при количестве навыков>7 появлялся стандартный message box(!!HL:XXXX) с базовым random навыком. Появлялся слева прокачать один из них, а справа дать базовый, но когда нажимаешь на базовый - он не прибавлялся...
Так что, пришлось лепись свой точно такой же message box с двумя картинками выбора (!!IF:Q), вроде неплохо получилось... yes.gif
Demiurg
Цитата(FANaTWOG @ 09 Jun 2007, 16:07)
Скриптеры, помогите!!! kap.gif

Необходимо получить, какой навык был выбран при получении уровня в окне выбора скилла. Согласен на любую функцию, даже с крутыми наворотами!

P.S. ERM 3.58f.

Иногда можно использовать эмуляцию посттриггера.
Ставим вопрос: Что может игрок сделать после получения навыка?
Ну и перечисляем:
Пойти куда-то каким-нибудь героем
Нажать куда-нибудь мышкой
Сохраниться
Зайти в город и там нажать куда-нибудь мышкой
Если нужно, то можно еще добавить вариант - получить еще один уровень.
Код
ZVSE
!#VRv37:S0;

!?HL-1&v37=0;
!!IF:M^trigger hl^;
!!VRv37:S1;

!?MM1&v37=1;
!!VRv37:S0;
!!IF:M^trigger mm1^;

!?GM1&v37=1;
!!VRv37:S0;
!!IF:M^trigger gm1^;

!?HM-1&v37=1;
!!VRv37:S0;
!!IF:M^trigger hm^;

!?CM0&v37=1;
!!VRv37:S0;
!!IF:M^trigger cm0^;

!?CM5&v37=1;
!!VRv37:S0;
!!IF:M^trigger cm5^;


Добавлено ([mergetime]1181489305[/mergetime]):
Данный код определяет - что игрок делает после получения уровня(нескольких уровней)
Чёртос-2 (Chortos-2)
Цитата(Demiurg @ 08 Jun 2007, 19:50)
Практически так.
Выяснилось, что Скриптер завершает обычные строки одним символом #10. А последнюю строку двумя #13#10.
Бред может понимать как обычные файлы, где строки завершаются #13#10, так и файлы, где строки завершаются просто #10. И подстраивается под формат файла при форматировании. То есть можно открыть ерм-файл в Бреде, подредактировать, сохранить и скрипт по-прежнему будет работать.
Ошибочка вышла: все строки заканчиваются символом № 10 (перевод строки), а самая последняя — последовательностью из символов № 10 (перевод строки) и № 13 (возврат каретки). Вот иллюстрация (кружком отображается символ № 10, а нотой — символ № 13):
Berserker
Можно поспорить. И серьёзно. Не факт, если notepad ограничивает всё одним символом, что так и везде. php для винды ставит два символа, дос проги два, я через паскаль - 2, ибо так проще считывать сразу на экран, а в данном случае приходится разбивать на строки и выводить по отдельности.
FANaTWOG
Как сделать, чтобы при включении одной опции автоматически отрубалась другая(как усиленные военные машины) или была вообще недоступна(как города без фортов?
Или вообще, как сделать переключатель опций(такой как "вогифицировать все карты", и.т.д) ?
Berserker
Чёртос, а я тебе поверил sad.gif
Большенство блокнотов, редакторы текстов, даже паскалевский IDE создают файлы, каждая строка заканчивается на #13#10 и никакий символов конца файла. Проверено на всём, что смог найти на компе.
Чёртос-2 (Chortos-2)
Вообще‑то я говорил про формат ERM. А у тебя создают со строками, заканчивающимися на CRLF, потому что все эти программы расчитаны на Windows, и в тех, где можно явно указать формат строк, у тебя не выбран формат POSIX — исходя из первого соображения по умолчанию практически везде стоит вариант DOS (он же Windows). smile.gif
Berserker
Ты про ЕРМ? Я там действительно ошибся smile.gif
FANaTWOG
Можно как-нибудь установить(получить) через ERM максимальное кол-во маны?
Нашел только установить/получить текущие очки заклинаний...
Demiurg
Нельзя.
Но максимальная мана несложно вычисляется.
И ты можешь скопировать вычисляющую функцию из ТЕ или ВОГ.
Aleee
Проверяешь текущее значение знания героя и уровень навыка Грамотность (вроде бы или что-то другое, что дает к мане).
gamecreator
интеллект dry.gif
Demiurg
Еще специальность по интеллекту надо учитывать.
FANaTWOG
Понятно, что можно ее вычислить (хоть и сложно из-за этого 5%-ого бонуса). Но как УСТАНОВИТЬ герою получившееся max количество маны? huh.gif


(мне нужно получить значение, поменять его и записать получившееся новое)
Berserker
!!HEx:I?y1;
....
!!HEx:Iy1;
FANaTWOG
Цитата
!!HEx:I?y1;
....
!!HEx:Iy1;

no2.gif

Мне нужно поменять МАКСИМАЛЬНОЕ количество маны, а не текущее.

Неужели никак? sorry.gif
Demiurg
никак.
Но можно сэмулировать.
Объектов не так-то и много, увеличивающих ману (колодец, фонтан-удвоитель, город, удвоитель маны).
Еще в начале каждого хода прийдется поизвращаться.
Так что, стоит задуматься о том, стоит ли это делать.
FANaTWOG
А бонусы к нападению, к интеллекту - это встроено? Нельзя никак вырубить?
Aleee
Есть один способ - убрать эти навыки из возможных при получении левела. Скрипт большой, так еще и нужно учесть всякие университеты, ведьмы...

Насчёт маны, слушай, а не проще ли добавить герою знания? Рассчитать столько, сколько нужно для достижения нужной тебе отметки маны?
Demiurg
Можно специальность поменять герою с интеллекта на какую-нибудь другую. Вторичные скилл интеллект можно убрать у героев. Еще можно процент добавляемый интеллектом на базовом, продвинутом, экспертном поменять с помощью !!UN:C. Под ВОГ я адреса не знаю, а под ТЕ есть.

Добавлено ([mergetime]1181973825[/mergetime]):
2Aleee
Думаю, что знания выставить не проще. Тогда прийдется париться в каждом случае, когда герой получает знания. А знания он может еще и с помощью артов получать.
Aleee
Почему париться? Если мы сначала узнаем, сколько мах маны на данный момент, а потом уже высчитываем нужно кол-во, какая нам разница сколько на нем артов?
Правда, похоже, число может быть лишь кратно 10 (если без Инт).
Demiurg
Смотря чего хочет Fanatwog
Если я его правильно понял, то он хочет изменить зависимость максимального количества маны от количества знаний у героя.
FANaTWOG
Цитата
Если я его правильно понял, то он хочет изменить зависимость максимального количества маны от количества знаний у героя.


Совершенно верно! yes.gif
Короче за 1 знания 5 очков. (А то маны прямо ДОФИГА mad.gif )
А если интеллект прокачаешь да еще спец... ohmy.gif


Цитата
Правда, похоже, число может быть лишь кратно 10

Нужно кратно 5. rolleyes.gif

Про UN:C вообще не врубаюсь как искать и.т.д.

Даже если найду адрес при перезапуске игры он разве не будет другой? unsure.gif


P.S. Насчет "запариться" не беспокойтесь. Я щас такой СКРИПТИЩЕ пишу, уже настолько запарился... wacko.gif
Demiurg
Цитата(FANaTWOG @ 16 Jun 2007, 12:42)
Про UN:C вообще не врубаюсь как искать и.т.д.
Даже если найду адрес при перезапуске игры он разве не будет другой? unsure.gif

Другим не будет. Вторичные скиллы всегда в одном и том же месте хранятся.

Добавлено ([mergetime]1181985662[/mergetime]):
Искать адреса можно с помощью Artmoney или Detective story.
Замечу, что большинство вторичных навыков хранятся в виде числа с плавающей запятой типа float - 4 байта.
Для интеллекта там стоят значение 0,25 0,50 1,00
Для атаки соответственно 0,1 0,2 0,3
Все три навыка - basic, advanced, expert идут подряд.
Но скорее всего искать в виде дробных чисел будет проблематично. Поэтому нужно получить число типа int (4 байта), соответствующее этим значениям.
Учитывая, что в ТЕ адреса уже найдены думаю, что проще будет скопировать кусок по найденному адресу из ТЕ и поискать в ВОГ такой же.
В качестве примера можешь смотреть script03 (ТЕ), строчки начиная с 250. Там идет запись с помощью !!UN:C по найденным адресам вторскиллов. Там же можешь и адреса для ТЕ посмотреть, чтобы найти в ВОГ аналогичные.
Рогатый Змий
Все мы знаем когда мы захотим установить новых монстров и если до этого мы ставили еще других монстряков то картинки старых монстров будут заменены другими, т.к. происходит замена файлов CPRSMALL и TWVPORT moral.gif cray.gif cray.gif
Так вот я хочу знать возможно ли с помощью ерм присвоить картинку малую и большую если они находятся в DATA чтоб не пришлось лепить эти чертовы файлы которые затрут картинки старых монстров... sorry.gif
Если можно то как? unsure.gif
Lindar
А можно, с помощью скрипта, обнулить игровой календарь?
Aleee
ERM может лишь получать значения текущей даты (д/н/м).
Efrit
Вопрос...

Как запретить возможность оставлять войска на карте? При этом ВоГификация тоже запрещена ( !#UN:P5/0; ).
Дело в том, что обычное !#UN:P2/1; не работает, почему - не знаю...
Druin
Эфрит, юзай так:
Код
!?PI;
!!UN:P2/1;

Почему ента хрень не хочет работать через инструкцию я не знаю...
FANaTWOG
Как совместно писать условия "и" и "или"?
К примеру, некое действие при условиях:

1)v1=5
2)v2=3 или v2=4
3)v3=7 или v3=8
4)v5=0

Все 4 условия должны быть в одной строке...
Типа: ...&v1=5/v2=3|v2=4... а дальше не знаю как писать - боюсь ошибиться, а тестировать все варианты не получится - довольно редко бывает это условие... sorry.gif
gamecreator
этого нет в ерм. вроде. или криво реализовано. лучше писать раздельно.
Druin
Цитата(FANaTWOG @ 20 Jun 2007, 13:26)
Как совместно писать условия "и" и "или"?
К примеру, некое действие при условиях:

1)v1=5
2)v2=3 или v2=4
3)v3=7 или v3=8
4)v5=0

Все 4 условия должны быть в одной строке...
Типа: ...&v1=5/v2=3|v2=4... а дальше не знаю как писать - боюсь ошибиться, а тестировать все варианты не получится - довольно редко бывает это условие... sorry.gif

ээээ... попробуй так:
Цитата
&v1=5/v2>2/v2<5/v3>6/v3<9/v5=0

для твоего примера должно сойти вроде...
хотя все таки лучше, как сказал Гамадел, в несколько строк...
FANaTWOG
Цитата
ээээ... попробуй так:
QUOTE
&v1=5/v2>2/v2<5/v3>6/v3<9/v5=0

для твоего примера должно сойти вроде...


Да пример-то я от балды написал... spiteful.gif, но принцип понял.. Попробую...

Кстати, а так прокатит:
Код
... &v1=5/v2=3|v2=4/v3=7|v3=8/v5=0: ...
Druin
Нет... В том то и дело что "|" ты можешь использовать только один раз...
Разрешены такие комбинации:

&v1=1/v2=2/v3=3: //v1 и v2 и v3
|v1=1/v2=2/v3=3: //v1 или v2 или v3

Вроде проходит еще такое:

&v1=1/v2=2|v3=3; // (v1 и v2) или v3

Но несколько комбинаций "или" уже не разрешаются... То есть твой пример не пройдет... Причем после "или" "и" уже не разрешается... И вообще этот третий вариант не рекомендуется использовать...
FANaTWOG
Ситуация такая:

После триггеров !?BG1 и !?BR&v997>-1 получаю номер героя-как узнать AI под этим номером или HUMAN?

Пробовал:

!!HEv7461:O?y9; (v7461-номер героя)
!!OW:Iy9/?y5;
!!IF&y5=1:V330/1; (Если V330=1, то AI)

все работало, но после каждого действия поверх battle log возникала панель ресурсов и картинка героя с его первичными характеристиками.

Пробовал:
!!IF&-1000:V330/1;

но флаг 1000 почему-то неправильно возвращает значение


КАК ЖЕ БЫТЬ??
Demiurg
Нельзя использовать в битвенных триггерах ресивер !!HE. Если нужны герои, то лучше их сохранить в !?BA0(!?BA50, !?BA52).
Если нужно сделать проверку на АИ, то можно сделать следующим образом - определить цвет игроков в битве и узнать - человек под этим цветом или компьютер.
Код
!!BA: O?y-1/?y-2;
!!VRv2000:S0;
!!OW&y-1>=0: Iy-1/=1;
!!VRv2000&-1:+1;
!!IF&y-2<0:V1/1;
!!OW&y-2>=0: Iy-2/=1;
!!VRv2000&-1:+2;

В переменную 2000 сохраняется тип битвы.
0 - AI vs AI
1 - human vs AI
2 - AI vs human
3 - human vs human
FANaTWOG
Попробую этот код, а что !!HE нельзя использовать...ну не знаю...я не раз его использовал и в !?BR и в !?BG - тестил много раз, никаких глюков... unsure.gif
FANaTWOG
Цитата
Нельзя использовать в битвенных триггерах ресивер !!HE.


Блин, однако, ты прав... banghead.gif Из за этого и вылезала панель ресурсов...

Но как же мне в каждом action проверять сколько маны осталось у героя... sorry.gif
Berserker
Нельзя использовать в битвенных триггерах ресивер !!HE.

Хто такое сказал??? Нонсенс! Кое-какие команды без перерисовки МОЖНО использовать и УЖЕ используются smile.gif
FANaTWOG
Использовать можно, но возникают баги. Вылезает картинка героя:

Скрин


После обновления !!BU:R то, баг исчез только с поля боя, но на кнопках остался:

Скрин после обновления

Нельзя ли обновить ВЕСЬ экран? sorry.gif


P.S. Подскажите, куда можно залить файлы, чтобы "[/IMG]" не ругался ("неправильная ссылка")?
Чёртос-2 (Chortos-2)
http://www.imageshack.us/

P. S. Сколько люди не просят не закачивать ничего на slil.ru и не закачивать никуда BMP, никто не слушает… Если что, просил не я.
Bes
Скажите пожалуйста, как правильно читать вот такую запись !!FU|1/2:E;? Это случайно не тоже самое, если бы написать !!FU&1|2:E;? unsure.gif
Druin
Тоже, но первый случай правильнее...

Добавлено ([mergetime]1183556081[/mergetime]):
Читается как: или 1 или 2
Bes
СРОЧНО, нужна помощь....
1 - как в начале битвы сделать так, чтобы в конкретной ячейке установить "силовое поле"??? Я пробовал через BH:C, но ничего не происходило idontno.gif (ставил для !?BG-1, BG0, BG1)

2 - Как можно узнать номер стека, в котором находится конкретный монстр??? Я всё уже пересмотрел, перепробывал, но ничего не выходит, никак не могу сообразить как это сделать sad.gif
Мне всего лишь надо забить в переменную номер стэка, где стоит щас нужный монстр, которого я вызываю через !!BU:S160/1/34/0/-1/0;

PS: да и вообще, я до сих пор не могу понять, как узнать от чего зависит номер стэка??? Почему их 21 с каждой стороны - это понятно, но как распределяется эти номера среди 7 слотов существ не понятно??? idontno.gif
Efrit
Бес, посмотри в карте за Бастион, что ты тестируешь, скрипт с магическим храмом... Я там постоянно магию вызываю...
А номер стека зависит от того, в каком порьдке стеки идут в армии героя сверху вниз... Конечно же, могут быть еще и призванные стеки, и клоны...
Arseny
А как сделать специальность герою? Например на юнитах, заклинаниях, умениях, ресурсах...
Aleee
!!HE:X
Arseny
X - это номер существа, или что там надо писать?
gamecreator
X#1/$2/$3/$4/$5/$6/$7

Изменить специальность героя. Установить/проверить/получить все спец. установки. Типы специальностей (#1):

#1 = 0 – спец по вторичному навыку
$2 = номер вторичного навыка
$3…$7 игнорируются.

#1 = 1 – спец по существам
$2 = тип существ
$3…$7 игнорируются

#1 = 2 – спец по ресурсам
$2 – тип ресурса
$3…$7 игнорируются

#1 = 3 – спец по заклинанию
$2 – номер заклинания
$3…$7 игнорируются

#1 = 4 – экстраспец по существам
$2 – тип существа
$3 – бонус атаки
$4 – бонус защиты
$5 – бонус повреждений
$6…$7 игнорируются

#1 = 5 – скорость и другие специальности
$2 – подтип
$3…$7 игнорируются

#1 = 6 – спец по улучшениям
$2 = существо 1 для улучшения
$6 = существо 2 для улучшения
$7 = существо улучшенное
$3…$5 игнорируются

#1 = 7 – спец по драконам
$2 = бонус атаки
$3 = бонус защиты
$4…$7 игнорируются

#1 = 8 – экстра-ВоГ – специальность
$2 = подтип
$3…$7 игнорируются

Комментарий: вы можете использовать ‘d’ для игнорируемых или неизменяемых вами настроек:

!!HE:X8/2/d/d/d/d/d;
Arseny
Вот Часть скрипта, только он не работает idontno.gif

!?OB8/5/0;
!!IF:^Òû çàõîäèøü...^;
!!HE-1:X#6/139/d/d/d/139/143;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.