Полная версия этой страницы:
Подгрузка дефов для монстров
Автор скрипта и сообщения Д'яконКод
ZVSE
!?PI;
!!VRzx2:S^название дефа^;
!!FU1:Px1/x2/x3;
!?FU1;
!!VRy5:S6751172;
!!UN:Cy5/4/?y1;
!!VRy2:Sx2 -1 *512 +9597928;
!!VRy3:S0 -x1 *20 +y1;
!!DO2/1/x3/1:Py2/y3;
!?FU2;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!VRx1:+1;
!!VRx2:+1;
И так.
x1 -номер заменяемого монстра
x2 - индекс z-переменной в которой хранится название дефа
x3 - длинна имени дефа +1 символ. (издержки, чтоб скрипт не растягивать. Я думаю посчитать не сложно).
Значит что делает этот скрипт. Заменяет дефы существ на новые, которые Вы можете добавить в лод не заменяя старых.
Предупреждение: при добавлении новых дефов в лод, следите чтоб они добавлялись по алфавиту. Если такового не происходит, значит имя дефа должна быть следующей по алфавиту. Т.е. если последний деф ZZZZ.DEF, значит добавленный должен быть типа ZZZZZ.DEF
Лучше юзать формат имен типа ZZZZ01 ZZZZ02 ZZZZ03 и т.п. А еще лучше если имя нового дефа по длинне будет как имя заменяемого дефа (но не обязательно)
З.Ы. Можно заменять практически все. Фантазируйте
Хм, ну не знаю. Вторая вариация скрипта у меня вообще отказалась работать, а первая хоть и работает, но деф не меняет - лишь меняет здоровье алебардирам на 9597928...
P.S. Тестировал на моей 3,59, если что.
На своей 3.59 и не стоит тестировать - это под ТЕ.
Добавлено ([mergetime]1199610683[/mergetime]):
Под ТЕ 1,03 - работает. Проверено
Добавлено ([mergetime]1199611199[/mergetime]):
ПОДПРАВЛЕНО. СКРИПТ РАБОТАЕТ ПОД ЛЮБУЮ ВЕРСИЮ ГЕРОЕВ СТАРШЕ 3.58F. СКРИПТ №2
Тогда сразу 2 вопроса (пока не тестировал) :
1) x3 - это длина с расширением или без?
2) а не с монстрами такая функция будет работать?
Docent Picolan
06 Jan 2008, 15:44
2. я уж отвечу. т.к. это очевидно
- конечно будет рабоать с любыми дефами. то есть появляется возможность добавить новой снаряд для монстра и т.д.
4 Bes*
Что-то я никак не смогла заставить работать скрипт
короче, поясни толком, что писать:
1) в zx2? Толи "zzzzf.def", толи "zzzzf".
2) в x3? Опять же, толи длину всего имени файла (вместе с точкой и расширением), толи только именную часть (т.е. 5+1, если имя буде "zzzzf")
Я брала 138 монстра (хоббит)... и ничего.
Пример написания условий для запуска FU1 напиши хотя бы...
Спасибо!
Объясняю принцип на примере. Заменим деф улучшенных лучников на деф архангелов.
Добавляем деф архангела в конец лода (при помощи ResEdit) с именем ZZZZZZ.DEF (либо используем деф архангела CRANGL.DEF)
Теперь функция
Код
ZVSE
!?PI;
!!VRz1:S^ZZZZZZ.DEF^;
;вместо х2 подтавлен индек переменной (в данном случае 1) вместо имени ZZZZZZ.DEF или CRANGL.DEF (смотря какой путь избрали)
!!FU1:P3/1/11;
3 - номер ул. лучника; 1 - выбранный индекс z-переменной; 11 - кол-во символов в ZZZZZZ.DEF +1символ
!?FU1;
!!VRy5:S6751172;
!!UN:Cy5/4/?y1;
!!VRy2:Sx2 -1 *512 +9597928;
!!VRy3:S0 -x1 *20 +y1;
!!DO2/1/x3/1:Py2/y3;
!?FU2;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!VRx1:+1;
!!VRx2:+1;
И запускаем. ВСЕ!
Заменять можно все, что видите в лодах
Добавлено ([mergetime]1199625713[/mergetime]):
2 Bes
Попробуй с мотнстрами из замков. Возможно с Бомжами идет смещение адресов и нужно подправлять скрипт. Естественно если вы меняете лучников деф на деф архангелов, то не удивляйтесь, если в битве произойдет крах. Так как у архангелов нет анимации для стрельбы
4 Bes*
Прошлась по всем замкам существ (по одному номеру на замок):
0 - ок
1 - ок
2 - ок
3 - ок
4 - ок
5 - ок
6 - ок? (до 95 нормально, а вот с 95 уже вылетает)
7 - bad
8 - bad
neytrals - bad? (до 125 вылетает, с 125 и выше просто не срабатывает)
ЗЫ: тестовый ZZZZZZ.def был со всеми анимациями (универсальный)
Проверяла под ТЕ.
Ну это радует. Спасибо за детальный тестинг. Это поможет заменять города чисто скриптами.
А вот есть вопрос для всех.
По идеи, если я все учел, можно создать эмулятор нового монстра (т.е. при помощи эиулятора добавлять новых монстров). Работы там много, но вроде возможно.
Вопрос: нужно ли это?
izrukvruki
08 Jan 2008, 10:15
Нужно, но ведь по любому ты старого юнита "затрешь"... было бы супер если можно было бы использовать и Лучника и Ангела (см. твой пример)
gamecreator
08 Jan 2008, 18:33
не затрется старый юнит. только спецспособности нельзя убрать и все
Освободившись от тяжелых будней, подправил скрипт для подгрузки. Теперь работает под любую версию героев (имеется в виду 3-х, включая и ВоГ)
Код
ZVSE
!?PI;
!!VRzx2:S^название дефа с расширением^;
!!FU1:Px1/x2/x3;
!?FU1;
!!VRy5:S6768560;
!!UN:Cy5/4/?y1;
!!VRy1:+12;
!!VRy2:Sx2 -1 *512 +9597928;
!!VRy3:S0 +x1 *116 +y1;
!!UN:Cy3/4/?y4;
!!DO2/1/x3/1:Py2/y4;
!?FU2;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!VRx1:+1;
!!VRx2:+1;
Пользуйтесь на здоровье!
Добавлено ([mergetime]1200218885[/mergetime]):
или
Код
ZVSE
!?PI;
!!VRzx2:S^название дефа с расширением^;
!!FU1:Px1/x2/x3;
!?FU1;
!!VRy5:S6768560;
!!UN:Cy5/4/?y1;
!!VRy1:+12;
!!VRy2:Sx2 -1 *512 +9597928;
!!VRy3:S0 +x1 *116 +y1;
!!UN:Cy3/4/y2;
но при этом варианте в z-переменной должно постоянно храниться имя дефа (в отличие от первого где z-переменную после подгрузки можно менять)
Слушайте, а можно просто перекрасить монстра и засунуть его в игру без скрипта? У меня вот чё получилось с лазурным драконом:
1) 3 дефа (когда он в бою, и 2 - в армии героя) у меня заменились без проблем.
2) А вот дефы, когда он на карте стоит, не получилось заменить:
а) Когда он просто стоит, у меня почему то получилась картинка, состоящая из двух левых половинок дракона, и он даже не двигался (а так то должен
). Цвет поменялся на новый (естественно какой я рисовал).
б) А вот когда на него нападают, дык он, как и в первом случае, состоит из двух своих половинок, а цвет даже не поменялся.
Такая же хрень и с городом... Я пробовал изменить темницу... НИХРЕНА!
NickLee
13 Jan 2008, 14:18
Цитата(Efrit @ 06 Jan 2008, 07:31)
P.S. Тестировал на моей 3,59, если что.
На какой такой 3.59 !?
gamecreator
13 Jan 2008, 14:23
тестовой
Есть одна неточность в скрипте (айм сорри)
в данной строке
!!VRy2:Sx2 -1 *512 +9597928; вместо 9597928 40225912 для ВоГ
2 NickLee: игродел прав, на тестовой. NTG по сути часть ВоГ, и рабочая версия 3,59 у нас есть (правда, уже весьма древняя). Ну да ладно, это оффтоп
2 Bes: ну ничего себе неточность
hippocamus
14 Jan 2008, 18:40
Цитата(Bes)
Вопрос: нужно ли это?
Однозначно нужно!
С помощью этого открытия ведь можно преодолеть барьер из 256 монстров:
На поле боя не может быть более 42 отрядов. Значит, достаточно использовать 42 разных юнита (пускай, дополнительных, неопределённых сейчас), и уже на поле боя подставлять необходимых монстряков (хотя представить себе ситуацию где на поле боя будет 42 новых юнита одновременно - нелегко
)
Так новым городам можно ничего не заменять. Просто пользоваться предопределёнными шаблонными. Кстати, как я понимаю, у них и спецсвойств никаких нет, которые нужно в эмуляторе блокировать!
Скрипт-шутка под ТЕ и старше.
Меняем снаряд у катапульты
Код
ZVSE
!?BA0;
!!VRzx1:S^CRANGL.DEF^; где х1 -...
!!FU20011:Px1; ... индекс z-переменной
!?FU20011;
!!VRy1:S4446975;
!!VRy2:Sx1 -1 *512 +9597928;
!!UN:Cy1/4/y2;
hippocamus
15 Jan 2008, 19:30
Скрипт такой, что живот надорвать можно! Это когда есть 10 городов, и во всех - граали построены нужно давать
Подгрузка звуковых файлов для монстров
Код
ZVSE
!?PI;
!!VRzx2:S^первые символы озвучки^;
!!FU1:Px1/x2; х1 - номер монстра х2 - индекс z-переменной
!?FU1;
!!VRy5:S6768560;
!!UN:Cy5/4/?y1;
!!VRy1:+8;
!!VRy2:Sx2 -1 *512 +9597928;
!!VRy3:S0 +x1 *116 +y1;
!!UN:Cy3/4/y2;
Теперь по порядку.
1) Озвучка хранится в формате ИМЯ + %sext2.82M %sext1.82M %sdfnd.82M %skill.82M %sattk.82M %swnce.82M %sshot.82M %smove.82M. Т.е. допустим имя озвучки пикемена называется pike, тогда озвучка движения его pikemove (т.е. вместо %s в %smove.82M, подставляется название озвучки)
2)Если вы заменяете один из звуковых файлов вам придется копировать и переименовывать и все остальные. Например Вы захотели заменить pikemove на zzaamove, то для корректной работі новой озвучки вам потребуется єтот скрипт и также все звуковіе файлі пикемена, но с именем zzaa... (надеюсь понятно объяснил
)
спасибо Сергрою за таблицу монстров3) Добавление озвучки в *snd соответствует правилам добавления и дефов, т.е. они должны добавляться по алфавиту.
4) !!VRzx2:S^первые символы озвучки^; - это и есть те первые символы имени озвучки, о которых я говорил.
Вроде написано много, но все элементарно - пользуйтесь
hippocamus
16 Jan 2008, 23:53
Тоже нужно!
А ты не знаншь, как можно поменять с помошью UN:C портреты существ в экране героя?
Разберемся со временем. Можно в принципе скопировать деф портретов заменить нужные и добавить в лод, а через скрипт дать ссылку на новый деф (но это крайний метод, хоть и рабочий - проверял, хотелось бы в этот же деф добавиь еще. Хотя в принципе разница не большая
)
Все возможно. Все что создано руками человека поддается изменениям...
NickLee
17 Jan 2008, 00:56
Можно ли убрать с поля боя рисунок героя на коне ? И как, если да.
Вероятнее всего можно, но для этого как я думаю нужен будет новый деф с такой же структурой.
izrukvruki
17 Jan 2008, 10:26
пусто (полностью прозрачный) деф можно попробовать сделать... количество кадров аналогично герою сделать - наверное проблем не должно быть...
hippocamus
17 Jan 2008, 21:41
Неплохо было бы теоретически сделать возможной битву при одном герое-защитнике и вообще без героев. Первый случай - Бродячие монстры напали на героя, или Огры пришли за своей дубиной. Второй - монстры напали на шахту, заставу или город.
NickLee
20 Jan 2008, 19:08
Цитата(Bes @ 13 Jan 2008, 14:08)
Код
ZVSE
!?PI;
!!VRzx2:S^название дефа с расширением^;
!!FU1:Px1/x2/x3;
!?FU1;
!!VRy5:S6768560;
!!UN:Cy5/4/?y1;
!!VRy1:+12;
!!VRy2:Sx2 -1 *512 +9597928;
!!VRy3:S0 +x1 *116 +y1;
!!UN:Cy3/4/y2;
А можно сделать тоже, но для зданий... На входе тип, подтип, имя дефа...
Добавлено ([mergetime]1200845294[/mergetime]):
Цитата(izrukvruki @ 17 Jan 2008, 11:26)
пусто (полностью прозрачный) деф можно попробовать сделать... количество кадров аналогично герою сделать - наверное проблем не должно быть...
Если получится, дай знать ! Буду очень признателен, да и не только я...
sergroj
20 Jan 2008, 21:03
Цитата(NeZ @ 13 Jan 2008, 17:29)
а) Когда он просто стоит, у меня почему то получилась картинка, состоящая из двух левых половинок дракона, и он даже не двигался (а так то должен
). Цвет поменялся на новый (естественно какой я рисовал).
В DefMaker в первом списке выбери "3 (Map object)". А лучше используй DefTool.
Скрипт для замены дефов зданий в экране города. (это не полный скрипт, а лишь небольшая иллюстрация. Меняется только деф. Оконтовка и координаты не меняются. Но это также не трудно сделать, если воспользоваться данными Ирха из инженерного анализа, за что ему ОГРОМНОЕ СПАСИБО. Заодно может чего еще интересного накопаете о зданиях
).
Ближе к телу
Код
ZVSE
!?PI;
!!VRz1:S^CRANGL^;
!!FU1:P0/43/1;
!?FU1;
!!VRy1:S0 -x1 *528 +6857424; -структура замка где х1 - номер замка
!!VRy2:Sx2 *12; -x2- номер здания (смотрите хэлп по ЕРМ)
!!VRy1:-y2;
!!VRy3:Sx3 -1 *512 +9597928; х3 - индекс z-переменной, в которой хранится имя дефа
!!DO2/1/12/1:Py1/y3;
!?FU2;
!!UN:Cx2/1/?y1;
!!UN:Cx1/1/y1;
!!VRx1:+1;
!!VRx2:+1;
Данный скрипт для примера заменяет двелинг архангелов (в экране города), на самих архангелов
. К сожалению деф архангела для этого не предназначен, поэтому смотрится немного коряво.
А и еще имя нового дефа не должно превышать 11 символов
.
З.Ы. Если существует указатель на данную структуру - поделитесь. Я не нашел. К сожалению герои в отладчике вешаются.
Так, всё же не могу так...
чтоб все знали - все эти мега скриптовые наработки принадлежат Владимиру... я (Алекса) ко всему этому ни каким боком не отношусь, а то подумаете ещё чего лишнего про коренного Bes
ЗЫ: Владимир, я думаю что стоит уже тему переименовать на более расширенное, чем как она щас называется... сам посуди
hippocamus
23 Jan 2008, 17:05
Бес, переименуйся в Януса
NickLee
26 Jan 2008, 03:47
так можно сделать подгрузку дефов для зданий ? или забить на эдакую возможность....
NickLee
27 Jan 2008, 04:31
Цитата(Bes @ 26 Jan 2008, 09:30)
ну а почему нельзя?
Хорошо... Спрошу по-другому...
Bes ! Ты можешь сделать скрипт для замены:
1. объектов (зданий)
2. артефактов
??????
Если да, то сделай пожалуйста ! И размести его где-нибудь в доступном для качания месте...
Спасибо !
hippocamus
27 Jan 2008, 11:30
Но объекты вель и так можно заменять!
!!UN:I#1/#2/#3/#4/#5/#6/#7/#8/#9;
NickLee
27 Jan 2008, 16:41
Цитата(hippocamus @ 27 Jan 2008, 12:30)
Но объекты вель и так можно заменять!
!!UN:I#1/#2/#3/#4/#5/#6/#7/#8/#9;
Спасибо... Большое... Глаза мне открыл на новыую команду...
Мне надо не один другим заменить, у меня и так пол-карты таким макаром нарисовано, а нужен
НОВЫЙ вид зданий !
Bes ! Ты жив(а) !?
sergroj
27 Jan 2008, 23:10
Добавил это в
http://forum.df2.ru/index.php?showtopic=68...BF%BDentry22075Хотя, если тебе это надо просто на карте поставить, то в патче к Редактору просто установи нужный def в Advanced Properties
NickLee
30 Jan 2008, 05:00
Цитата(sergroj @ 28 Jan 2008, 00:10)
Добавил это в
http://forum.df2.ru/index.php?showtopic=68...BF%BDentry22075Хотя, если тебе это надо просто на карте поставить, то в патче к Редактору просто установи нужный def в Advanced Properties
МНЕ НУЖЕН ДЕФ НЕ ИЗ БИБЛИОТЕКИ ИГРЫ, А СВОЙ, СТОРОННИЙ...
блин...
sergroj
23 Mar 2008, 00:46
NickLee, ой, не заметил. Сейчас для этого надо создавать wog-архив с новым дефом.
Сатарыч
12 Aug 2008, 17:01
А можно заменить деф не монстра, а определённого стека?
FakerNeo
12 Aug 2008, 20:14
Если сильно захотеть )
Цитата(hippocamus @ 17 Jan 2008, 00:53)
Тоже нужно!
А ты не знаншь, как можно поменять с помошью UN:C портреты существ в экране героя?
Цитата(Bes @ 17 Jan 2008, 01:00)
Разберемся со временем. Можно в принципе скопировать деф портретов заменить нужные и добавить в лод, а через скрипт дать ссылку на новый деф (но это крайний метод, хоть и рабочий - проверял, хотелось бы в этот же деф добавиь еще. Хотя в принципе разница не большая
)
Все возможно. Все что создано руками человека поддается изменениям...
Нужен этот скрипт! Напишите пожалуйста кто знает. Нужно подгружать
TWCRPORT.def (портреты монстров у героя) и
CPRSMALL.def (мелкие портреты).
Монстров удается подменять, осталось с портретами разобраться.
Проще пересобрать деф или воспользоваться alpha.dll
hippocamus
20 Jul 2015, 23:39
Я так понимаю, что подменять надо ему динамически, например - для отображения прогресса прокачки отряда.
Цитата(hippocamus @ 21 Jul 2015, 00:39)
Я так понимаю, что подменять надо ему динамически, например - для отображения прогресса прокачки отряда.
Мне просто надо подменить монстра в конкретной карте, чтобы оригинального монстра не затирать.
Подмена монстра на поле боя:
!?BA0; До битвы
!!VRz100:S^DMm001.DEF^;
!!FU100:P0/100/11;
!?FU100;
!!VRy5:S6751172;
!!UN:Cy5/4/?y1;
!!VRy2:Sx2 -1 *512 +40225912;
!!VRy3:S0 -x1 *20 +y1;
!!DO200/1/x3/1:Py2/y3;
!?FU200;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!VRx1:+1;
!!VRx2:+1;
Теперь по такому же принципу надо портрет монстра подменить, но что-то надо подправить в коде. Выше писалось что можно почти все заменять таким методом, но мне не известны такие значения S6751172;
feanor
21 Jul 2015, 12:44
Эра, RedirectFile
если не работает - простых способов нету
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.