Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Скрипт - Оруженосец (Юниты в резерве)
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Axolotl
Вот, просили выложить скрипт "Оруженосца"
Суть скрипта : 1- вы можете "прикрепить" к герою, другого героя, оруженосцем, при этом "оруженосец" исчезает с карты (формально он просто убивается, с запретом появления в таверне), но после этого вы можете обмениваться с ним юнитами.
2 - Героя имеющего оруженосца вы не можете сделать оруженосцем
3 - После смерти героя, оруженосец теряется (снимается запрет появления в таверне).
4 - Опыт существ, флаг, и опция флага также нормально передаются

Создание оруженосца - правый клик по кнопке "Next Hero" ("Следующий герой")...дальше менюшка, все должно быть понятно

Позже добавил второй скрипт (через мою менюшку показалось не очень удобно (слишком долго). В этом скрипте сделал возможность обмениваться с оруженосцем при помощи Ctrl-Clck прямо в экране героя (не в замке). Ctrl-Clck на юнита передает
его оруженосцу. Ctrl-Clck на пустой слот - вызывает меню выбора юнита у оруженосца.
Можно в принципе объеденить два скрипта в один.

Используется функция 22351
Используется переменная героя w121
(Если вы используете другие сторонние скрипты с такими переменными, нужно их изменить на свободные, либо в моем скрипте, либо в вашем, хотя это и так здесь все знают)...старался писать скрипт так, чтобы по возможности как можно меньше использовать глобальные переменные и функции, которых количесво ограниченно.

Ссылка http://sharebee.com/cd1424b8

P.S. Со скриптами начал разбираться только этим летом, не судите строго, наверняка многое в нем можно было сделать проще или лучше:-)
P.P.S Скрипт для WOG 3.58f. Дело в том, что в героев, до этого играл последние разы лет этак 6-7 назад, потом я их "переел" :-) (но маньячили по страшному), но до скриптов я тогда не добрался. И вот этим летом, живя с друзьями за городом на даче, на стареньком компе обнаружили WOG crazy.gif ...и понеслось опять madi11039.gif paladin.gif elf.gif dwarf.gif mult12.gif bud.gif все лето проманьячили :-)...ну и в этот раз я взялся за освоение скриптов, но так-как инета там не было вообще, про всё, что изменилось в мире герояв я не знал - про Tournament Edition, Era, Phoenix Mod, 3.59 узнал только сейчас, и даже еще не ставил их и не смотрел, что там за изменения...так много всего нового, буду осваиваться потихоньку.


Axolotl
Да, забыл написать.
Есть один странный, даже не знаю баг ли это, в общем, при включенной WOG опции Создания Сильванских Кентавров, если передать оруженосцу Grand Elves'ов, на следующий день (что весьма странно), они превращаются в Сильванцев.
Скорее всего это связанно с какой-то внутренней процедурой WOG. В тот же ход всё нормально, у оруженосца остаются эльфы.
Опция из разряда - Hard Coded, так что посмотреть, что это за глюк, в скриптах нельзя.

В остальном, несколько партий в Хот Сите отыграли, других багов не заметили, но со всеми возможными WOG опциями не тестили, также возможно нужно будет еще написать проверку на включение этих самых опций, например (только сейчас об этом подумал, так как изначально скрипт писался просто для себя, и про все возможные варианты его использования не думалось)
не знаю как он будет себя вести с отключенной опцией опыта существ.
feanor
ИИ, типа, каждый день проверяется на наличие у героя эльфов и кентавров. Если есть, то они автоматически трансмутятся.
hippocamus
Это скорее "Обоз" чем "Оруженосец". Артефакты ему сплавлять нельзя?
В идеале было бы лучше всего, если бы при щелчке в определённом месте в экране героя (например, правый щелчок на значке командира) появлялся бы экран обмена между героями. Т.е. необходимо вызвать стандартную функцию героев. Жаль, помочь не могу, только мысль.
Axolotl
Цитата(hippocamus @ 04 Oct 2010, 23:08) *
Это скорее "Обоз" чем "Оруженосец". Артефакты ему сплавлять нельзя?
В идеале было бы лучше всего, если бы при щелчке в определённом месте в экране героя (например, правый щелчок на значке командира) появлялся бы экран обмена между героями. Т.е. необходимо вызвать стандартную функцию героев. Жаль, помочь не могу, только мысль.


Можно и про артефакты написать, но зачем, вроде слотов придостаточно и так.
А вызов стандартного экрана обмена, это конечно же была первая мысль, когда возникла идея такого скриапта, но может я дурак, но что-то не нашел я в стандартном ВОГовском хэлпе такой комманды unsure.gif . Может пропустил чего. Пришлось самому писать процедуру передачи юнитов.
feanor
Цитата
А вызов стандартного экрана обмена, это конечно же была первая мысль, когда возникла идея такого скриапта, но может я дурак, но что-то не нашел я в стандартном ВОГовском хэлпе такой комманды

HE:C с 14 параметрами, вроде.
И через !!UN:C задавать-забирать верхний ряд.
Axolotl
Через H:C я и делал...правда через HE:C0....а имелся в виду вызов окна, когда один геерой подходит к другому (с передачей артефактов, баллисты и.т.д)...А через HE:C (с 14 параметрами) там нужно еще больше морочиться с тем, чтобы понять кого именно вы забрали (отдали), а это еще больше возни и текста, чем HE:C0.
А UN:C - это же вообще работа с участками памяти...до этого я не дошел rolleyes.gif
feanor
Цитата
а имелся в виду вызов окна, когда один геерой подходит к другому (с передачей артефактов, баллисты и.т.д)

не, нету такой команды. Попробовать сообразить можно, но лучше под Эру. Под 358 сложнее.
hippocamus
Такой команды нету. Если узнать адрес этой процедуры, то нетрудно делать этот вызов из dll для Эры. Но есть идея и без этого. Может, можно сделать так: перехватывать !?HM и инициализировать "мёртвого" героя-оруженосца координатами живого. Тогда при нажатии Пробела должен появиться диалог обмена, т.к. осуществилось как бы "посещение" героем оруженосца. Ещё можно поиграться с клоном героя - его, конечно, придётся каждый раз инициализировать заново и уничтожать после обмена, но можно попробовать - что получится при посещении героем самого себя (с подставленными нужными войсками)?
feanor
Цитата
Если узнать адрес этой процедуры, то нетрудно делать этот вызов из dll для Эры.

http://forum.df2.ru/index.php?s=&showt...st&p=427657

Можно и не для Эры, но геморройно.
Axolotl
Ну так-то да, но вроде в итоге получилось не намного сложнее в моем скрипте. Если через экран героя Ctrl-Clck передавать,
вроде просто всё получается.
Wic
Обмен артами с оруженосцем полезен тем, что ему можно сливать лишние боевые машины. В некоторых битвах они больше мешаются. Ну или таскать запасные.
Axolotl
Цитата(Wic @ 12 Jan 2011, 02:01) *
Обмен артами с оруженосцем полезен тем, что ему можно сливать лишние боевые машины. В некоторых битвах они больше мешаются. Ну или таскать запасные.


Да, идея хорошая...правда уже есть скрипты позволяющие отключать "вредные" баллисты стреляющие по ослепленным юнитамsmile.gif...но запасная палатка тоже хорошо. Сейчас правда сильно занят "Пучиной", может потом допишу....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.