Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Флейм
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
ShadowTheAge
Миханик
Я понимаю что используется куча переменных, но! Это сделано для удобства пользователей. Если так дальше продолжать, то и эти переменные не нужны - например, у монстра есть парочка неиспользуемых флагов, можно использовать их laugh.gif

В самих героях для хранения данных всегда используется 32-битная переменная. И в 90% случаев используется только младший байт (а то и бит!).

Возьмем то же хранение существ: Владелец (атакующий-защищающийся) - 1 бит. Остальные 31 бит пропадают.

Заклинания: Длительность - 8 бит (24 пропадают). Сила - 2 бит (30 пропадают) и это для каждого из 69+10 заклинаний!

И наконец последний аргумент в мою пользу. Я использую 42 переменные по 4 байт - итого 168 байт. Текст, который ты написал дополнительно - 335 символов. А каждый символ - это байт, вернее даже два, так как ERM строки дублируются в памяти. Я уж не говорю о том, что это дольше работает, так как парсинг строк, которым занимается процессор при исполнении скрипта, дело небыстрое.
Миханик
нда. ну, может я и необоснованно наскочил. приношу мои извинения. но для приличия всё-таки поспорю!
1) да причём тут память! дело совсем не в битах. всё равно они будут заняты игрой - хоть полные, хоть и пустые. дело здесь в том, что сейчас очень много людей пишут скрипты, и никто ни с кем (кроме WoG Team, да и то не всегда) не согласует используемые переменные. то есть безопасней написать десяток строчек скрипта, чем юзать десяток (ну или 42) переменных: есть некоторая вероятность, что твои переменные кто-то уже использует, а твой скрипт никто ээ... В ДРУГИХ СКРИПТАХ использовать не будет. я это имел в виду.
2) насчёт удобства - возможно, функцию даже проще юзать, чем переменные!
Цитата(ShadowTheAge @ 10 Oct 2007, 00:03)
у монстра есть парочка неиспользуемых флагов, можно использовать их
кстати, я уже это сделал - в одном своём скрипте.biggrin.gifфлаги тоже проще переменных в использовании. правда их меньше, и кто-то тоже может догадаться использовать...но это как-то проще проверить.
3) ну и что, что в Героях делают! мы не 3DO! мы умнее. если все будут прыгать с девятого этажа, вы тоже прыгнете?
ну, вроде всё.
Миханик
Несколько замечаний к справке:
1) Заклинание №77 в таблице названо как "Гром титанов", хотя в описании команды !!BM:M оно названо правильно.
2) Флаги монстров переведены как в английской справке, хотя на форуме кое-что про них выяснили.
3) Написано !!CD:A$1/$2/$3, хотя надо !!CD:A#1/#2/$. правда в английской справке такая же ошибка. аналогично с !!CD:E,N,P и многими другими в разных ресиверах.
4) нет команды !!CM:H
5) было бы неплохо добавить команду !!UN:C
я ещё не всё прочитал, потом ещё напишу, если что найду. Но на самом деле это уже шедевр по сравнению с версией, которую я юзал раньше.
DracoLich
1) А разве не Гром Титанов в оригинале???...
2) И что? Фактически ничего неизвестного, многое следует из определеня флага в справке. Но добавить можно
3)Все команды не проверишь..
4) Добавил
5) Как только появится дельное ее описание... Желательно с примерами (хотя их здесь полно)
Bes
DracoLich, неужели это первые заметки от пользователей по вашей цхм-справке? biggrin.gif
(мои не всчёт wink.gif)
Миханик
Цитата(DracoLich @ 12 Oct 2007, 18:50)
1) А разве не Гром Титанов в оригинале???...
в оригинале - в смысле в игре? у меня в буковском переводе - удар молнии, зуб даю. это я точно помню.
Цитата(DracoLich @ 12 Oct 2007, 18:50)
3)Все команды не проверишь..
если уж взялся переводить, так переводи хорошо! чего там проверять, их всего около сотни!
Цитата(DracoLich @ 12 Oct 2007, 18:50)
5) Как только появится дельное ее описание... Желательно с примерами (хотя их здесь полно)
взгляни здесь
и вот ещё поспели замечания:
6) !!IF:M-1 - это что такое?!
7) нет синтаксисов !!IF:Q#1/#2 Q#1/#2/#3 Q#1/#2/#3/#4 Q#1/#2/#3/#4/#5; где последний # - номер z, откуда брать текст. хотя их опять же нет в английской справке.
8) в описании !!MP сказано, что если не указывать путь к файлу, он будет браться из папки героев (в примере), хотя он берётся из папки MP3 (или как её там).
но я ещё не досмотрел до конца.
да, ещё поясню, что когда я говорил про шедевр в предыдущем посте, я ничуть не иронизировал - это так, на всякий случай.
Миханик
вот ещё четыре:
9) в описании !!OW:D сказано в конце, что после захвата и потери замка установится обычное кол-во при #2 = -2, хотя правильно сказать, что устанавливается стандартное кол-во, к-рое мы устанавливаем в #2 при #1 = -2.
10) непонятно !!OW:H, что делается с v[$2]..v[$2+7]? вообще, они переведены как герой 1..герой 8, хотя в оригинале v[$2] - число героев, v[$2+1] - первый герой, v[$2+2] - второй герой, а про v[$2+3]..v[$2+7] в оригинале вообще ничего не написано. но ни в оригинале, ни в переводе неясно, что писать в v[$2+1]..v[$2+8]; как я понимаю, сюда пишется номера героев при #3 = 0. но кто его знает?
11) в !!OW:I#1/$1/$2 не указаны значения $2. вроде очевидно, что 1 - жив и 0 - мёртв. однако на самом деле наоборот!
12) в !!OW:K#1/#2/$ битая ссылка smile.gif на палатки ключника: Guards.htm вместо BG.htm. кроме того я не уверен насчёт диапазона 0..7 для #2: у меня выходило размещать на карте работающие палатки с подтипами > 7, уж не знаю, можно ли их редактировать этой командой.
gamecreator
10) ну в хелпе написано что там номера героев. но почему только 2?
Bes
Может кто знает?

Как известно, в игре есть монстры способные кастовать...
так вот, к примеру улучш.Горгона считается таким монстром? (т.е. можно ли ей через скрипт прописывать !!!!BG:A10 S-1 Dx1;)... тоже самое касается и Скорпикор, Летучих аспидов и т.п.

и ещё, если это подтвердится, то скажите, может и для улучш.Минотавров такое действие можно совершать (ведь у него в анимации есть кадры каста, просто разрабы это потом задвинули... а вдруг в ехе-шнике это успели прописать?)
Bes
===

Вопрос про скрипт00, а точнее про автозамену одних объектов другими (при вогификации)...

никак не пойму, что 'footprint' означает? Вот синтаксис...
Код
** table fields: type/subtype/footprint/terrain/back wall/edge x/edge y
** footprint values:  0 = Y, 1 = RY, 2 = YR, 3 = RYR, 4 = other

как распределяется "footprint values" относительно разных объектов? от чего это зависит?
unsure.gif

(пытаюсь внедрить новый объект для вогификационной подмены)
Demiurg
R - red - красная (непроходимая) клетка
Y - yellow - желтая клетка (вход в объект)
При замене объектов желательно, чтобы заменяемый объект имел такую же конфигурацию красных и желтых клеток.
Druin
Ну или чтоб обьект был по размерам не больше заменяемого... И если меньше, то чтоб соблюсти проходимость затыкать клеточки пеньками (как это сделано в скрипте замены конфлюкса нетральным городом...
Bes
Пару вопросов апо ЕРМ-справочнику:
- почему-то написано, что в качестве Временных переменных (также могут быть использованы в других скриптах) можно использовать i-n "быстрые" переменные.
А что, остальные (f-h,o-t) переменные для этих целей не подходят? Непонятно?! dry.gif

- насчёт "Использованных номеров PO (по объектам)"...
К примеру, написано "Живой череп (тип 63, подтип 50) : N, O, V0"
Насчёт V0 смысл понятен. А вот по остальному не совсем. Ведь если в каком-то скрипте используется, к примеру, N0-N9, то это ещё не значит, что N10-N15 использовать нельзя.
В общем, хотелось бы чтобы авторы ЕРМ-справки (англ. версии) всё-же в будущем указали конкретно рамки использованных номеров для определённого параметра PO-ресивера. (к выходу 3,59).
Если кто располагает возможностью передать это пожелание Heroes3.5 WoG Team, то было бы здорово. (или же давайте все кто- что знает, выкладывать более детальные цыфры для использованных параметров !!РО)

ЗЫ: не посчитайте меня занудой всего лишь по тому, что я хочу располагать точной информацией, а не размытыми данными. Как ни старнно, эта инфа кому-то всё же нужна beee.gif
DracoLich
Ну, првератности команды ВоГ. Это их слова smile.gif
Насчет PO:N - вообще-то эта команда имеет одно значение - PO:N$, и никаких изменений не может быть произведено без затрагивания этой переменной...
Bes
Цитата(cэн-сэй)
Насчет PO:N - вообще-то эта команда имеет одно значение - PO:N$, и никаких изменений не может быть произведено без затрагивания этой переменной...
да, но ведь у N могут быть значения 0..15. Вот если они все эти значения взяли, тогда ладно. Но я сомневаюсь.
Я ведь говорил именно про значения параметров ,а не про сами параметры.
К примеру, параметр H$ вообще имеет 256 значений, ведь врядли их все задействовали в Фабрике боевых машин (где использовался этот параметр).
В общем, ...
Bes
Цитата(gamecreator @ 02 Nov 2007, 13:09)
а ЕХ не подходит?
нет, там ведь нельзя работать с бонусными линиями... там всё на опыт завязано, а хочется давать абилки не всем сразу, а послотово wink.gif
gamecreator
делай это в бою
Bes
так в том то и дело, что ЭТО требуется вне боя. banghead.gif
gamecreator
очень?

Добавлено ([mergetime]1194010611[/mergetime]):
а зачем если не секрет?
DracoLich
Bes, а подробней. что нужно? Настроить навык у существа в армии героя, не меняя остальных, так что ли?
Bes
Надо давать абилку "Ненависть" определённому стеку в армии...
Но к сожалению, !!ЕА даёт её всем подобным типам существ.

Если знаете как здесь вывернуться, то было бы здорово.
DracoLich
1) Давать во время боя через EA-x:
2) Перехватывать удары в бою и имитировать ненависть
Отдельно давать какой-либо бонус опыта существу без изменения остальных существ такого же типа _не_ в битве невозможно.
KZEN
Всем привет.
Почитал тут темку и возникол несколько важных вопросов (причем нупских crazy.gif )

1) (из темы http://forum.df2.ru/index.php?showtopic=2457&st=0) скрипты пишутся или в ERM редакторе или в редакторе карт? Или определенный скрипты только в первом, а определенные во втором?

2)
Цитата
Ну ладно, давайте например, создадим из пустого артефакта номер 168
Как узнать пустой артефакт или нет? И как узнать номер артефакта? Те же вопросы и про строения.

3)Измененные артефакты доложны находится сразу на герое или их можно ставить на карте?

4)Вроде бы скрипты можно писать и в блокноте, или это не так? Если это так, то как "обзывать" сам файл? Можно ли в болкноте написать скрипт "бомжевания" героя?

5)Для того чтобы скрипты работали на всех картах надо их добавить в папку Data\s или в другую папку? Вдогонку вопрос - скаченные скрипты пихать в эту же папку?

6)В этой теме ( http://forum.df2.ru/index.php?showtopic=5866 ) некоторые ссылки ведут на страницу с какими-то непонятными иероглифами, что можно сделать чтобы файл можно было загрузить?

И последний вопрос - чтобы скрипты заработали их надо как-то активировать? (Это я говорю про те скрипты, что находятся в теме "Архив скриптов")

Ну и самый последний вопрос - есть ли скрипты, которые предпочитают старожилы этого форума biggrin.gif

Заранее спасибо))
gamecreator
1) все равно
2) соотв. раздел в ерм-помощи. насчет пустого арта - никак
3) все равно
4) в блокноте нельзя. можно в Bred, поставив опцию "разрешить выход курсора за конец строки"
5) Data\s, да.
6) файл - сохранить как...
тип файлов все файлы
имя скрипт.rar
Bes
Цитата(DracoLich)
Отдельно давать какой-либо бонус опыта существу без изменения остальных существ такого же типа _не_ в битве невозможно
именно по этому я и написал здесь пожелание на будущее dry.gif


4 KZEN
ваше стремление во всём разобраться конечно похвально, но имхо вы не стого начали... Если хотите постичь азы ЕРМ, начните со справки, потом посмотрите какие-нибудь готовые скрипты (попытайтесь их "читать"), потом начните с простеньких оперций... а если что не понятно, спршивайте...
А то вот так бес теоретич. подготовки спрашивать по ЕРМ-основам полное самоубийство... минусами закидают.
Воспринимайте это как добрый совет (по себе знаю) wink.gif
gamecreator
Бес, ты неправ
Bes
В чём?
В том что большинство таких вопросов просто футболятся?
Не будем лукавить... wink.gif

А если вы про способ прихода к ЕРМ-понимаю, то я говорил про свой путь... естесвенно это было "имхо", тут уже у каждого свой путь будет.
gamecreator
лишь один из тех вопросов что он задал относился к ерм-хелпу: вопрос о номерах
Demiurg
Нормальные вопросы.
В теме Обучение ERM информация, к сожалению, подана не лучшим образом.
Кстати, в ERM Help'е есть раздел: "How to create your first script". Его можно почитать. Там достаточно популярно написано.
KZEN
Просто дело в том, что я совершенно не дружу с английским bad.gif

И у меня тут еше 1 вопрос возник - вчера хотел обновить игру через апдейтер (скачал скрипт "драконьи кости") но высветилась такая ошибка

И похоже, что она высвечивается на всевог-файлы для апдейта. Подскажите что делать banghead.gif
Irh
В пути к папке Героев не должно быть русских букв.
gamecreator
а может в том файле нет текстовиков?
DracoLich
2Bes
Цитата
именно по этому я и написал здесь пожелание на будущее

Я, конечно, не много смыслю в высоком программировании, но помойму это невозможно. Слишком много переменных: монстр может быть высажен на карту, и тогда он все равно должен иметь эту способность? Если нет, то при взятии обратно она появится? Где будет храниться этот статус? А если монстра передать другому герою/посадить в гарнизон? Слишком много параметров загрязнят игру, да и разницы между тем, дать всем или одному существу абилку, не вижу.
В общем, ИМХО, такого не будет. Проще все же через битву.
Bes
Цитата(DracoLich)
Я, конечно, не много смыслю в высоком программировании, но помойму это невозможно
я вообже в этом деле туп, но всё же надеюсь на лучшее...
Цитата(DracoLich)
да и разницы между тем, дать всем или одному существу абилку, не вижу.
ну вы тут загнули.
Это ж вам не мораль или удача.
Нафиг мне, чтобы если я даю своему монстру бонус (причём за 5000 золота), чтоб у врага с таким же отрядом монстров появился такой же бонус, причём бесплатно. Идеотизм да и только.

Я тут подумал, может через использование ini-файла это получится сделать. Только вот не знаю, можно ли через ЕРМ записывать в ini ? Что считывать можно, это я точно знаю... а вот с записыванием не уверен. unsure.gif
В общем, буду пытаться, авось что дельное выйдет.
Demiurg
В бою абилки можно стекам давать, а не монстрам.
!!EA#:B
# = <stack number>X-1
X - операция логического исключающего или в ERM
Для положительного числа A ее результат с параметром -1 будет -A-1
Berserker
Бес, вашу проблему так не решить. С исходниками можно было бы в record монстра добавить лишние поля, тогда это было бы глобально, а сейчас, искусственно, заставить в любой момент игру учитывать их, это тяжело. Хотя флаги и опыт сделали вроде, по такому макару можно ещё пару переменных добавить.
Bes
Demiurg, это то известно, просто проблема в том, что такая фича даётся изначально в Городе при посещении определённой постройки, и поэтому надо как-то сначала записать определённого монстра (и его жертву ненависти), кому это давалось. А потом уже в бою это считывать и на основании этого давать уже через !!ЕА-х:В;
конкретному адресату.

===

Короче...
Нужен профессиональный совет...
Что лучше (целесообразнее) использовать: (или/или)
1) 14 w-переменных?
2) ini-файл, где будет 155 секций (под каждого героя) с 14 опциями в каждой (под монстров одной расы)?

2 вариант мне больше нравится тем, что не надо будет кучу w-переменных занимать... а размер самого файла меня не пугает.
Подскажите всё же, какой вариант выбрать???
Berserker
Бес, ну право. Какой ини-файл? Мало того, чо это будет тормозить игру, Вам придётся создавать уникальный файл для каждого героя (или всех героев!!!) каждого сейва! Это же будут тысячи ини-файлов.

Далее, 14w - переменных тоже не подойдут. Скажем оставил часть армии в гарнизоне шахты, пришёл туда с обученными ненавистью войсками, оьъединил и ладно. Или, что вообще нельзя проконтролировать, строения и скрипты ЕРМ. Изменил войнов, дегрейдил, увеличил количество, а ваш скрипт будет в неведении. Наконец можно единственного воина сделать оруженосцем.
Bes
Цитата(Berserker)
Бес, ну право. Какой ини-файл?...
Это же будут тысячи ини-файлов.
Каких тысячи?
Всего один с такой структурой (грубо...).
[A]
X1=Y1
X2=Y2
А - это номер героя
Х - это монстр, кто ненавидит
Y - это монстр, кого ненавидят.
Итого, ini-файл размером 18Кб...
Но это был же один из вариантов... я ж не говорил что это решение задачи.

А про w-переменные... ну не знаю, я вам полностью доверяю, и ваш опыт в подобных вещах несравнимо больше моего.
Но... имхо вы не вникли в сути моего предложения...
Алгоритм см. на ЗФ Гавани...
Berserker
Господа, может кто-небудь возьмётся за перевод Сагамозы? И где взять описание на русском?
DracoLich
Если кто-нибудь пошлет мне на ящик скрипты с текстами (ну и там картинки с текстом) этой Сагамозы, переведу. Скачивать >7 мб мне не под силу.
Berserker
Драколич, а на днях (может завтра) скачаю и отошлю тебе, хотя
Скачать скрипты
Тут меньше 400 КБ, только скрипты.
Bes
Люди...
если кто постиг DL-шаблоны, может в "Обучении" поделитесь примудростями с остальными sorry.gif
Я недавно сам прошёл через все потуги с этим DL, вроде как теперь стал чуть шарить... но никому не посоветую всё это изучать с чистого листа... там же стоко недосказанности, что только на "пробах и ошибках" начинаешь постигать...

Хоть он и "сырой" но если разобраться, то получается супер-вещь biggrin.gif
Bes
Цитата(Berserker @ 08 Nov 2007, 23:01)
Определение номера стёка в триггере !?MR2 от Дьякона:

!?FU$GetStack$;
;x1 - индекс v-переменной, куда будет возвращён результат.
!!UN:C42231940/4/?y1; 
!!VRy1:+56;
!!UN:Cy1/4/?y2;
!!BU:Ey2/?y3;
!!FU&y3=-1:E; corrected by Bes
!!VRvx1:Sy3;

!!FU|y2<0/y2>186:E; corrected by Bes - непонятна проверка, точнее логически неверна. Если функция выйдет, то скрипт не получит значение стёка, что приведёт к краху.

!!FU&y3=-1:E; corrected by Bes
А на мёртвых разве действует триггер?

Вот вчера я всё таки вспомнил, к чему все эти, казалось бы, ненужные условия...
Вы, Berserker, попробуйте с работающим кодом (но без моих добавокв него) колдануть "Волна смерти" wink.gif
Cразу же вылетит "птичка", мол "по указанному месту стэка не существует" и т.д.
Видимо, при использовании адресов памяти, откуда Дьякон нашёл способ вытаскивать номера стэков, ещё учитывается наличие Стрелковых Башен!
По крайней мере, я так предполагаю... естественно мои слова ни в коей мере нельзя принимать как истина (я всего лишь излагаю).

Вы попробуйте именно при асаде города, где есть Башни (хотя бы центральная).

А в остальном, если ввести указанное прерывание, код работает ОТЛИЧНО!!!
За что огромное спасибо Дьякону!!!

===

насчёт второго условия (!!FU&y3=-1:E;) пока ничего вспонить или получить не смог, видимо оно ивпрямь лишнее... надо всёже тестить.
DracoLich
Если про Башни, то они считаются за отдельных монстров в бою. Легко проверить вызовом элементалей в Замке при осаде, либо Сантами (в 1ом случае 21 стек существ не наберется, во 2ом последний Санта будет без охраны (почти)).
Д'якон
Я думаю, Берс имел в виду не то что проверка не нужна, а то что если она вдруг сработает то номер стека функция не выдаст. Т.е. нужно было например перед данной проверкой присваивать переменной отвечающей за номер стека -1 с тем же условием, что и !!FU:E.
Berserker
Что-то сильно глючит у меня код мой, может быть действительно лучше использовать вариант Дьякона. Только он действует во всех !?MR триггерах?
Д'якон
Действует во всех. Только, например, в !?MR1 по-моему действует только для ущербной магии. А почему бы не использовать !?MR2 ?
Berserker
Мне же нужно урон менять, а не только сопротивление. А урон в !?MR
Д'якон
Ну так урон наносит только ущербная магия - тебе подходит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.