Насчёт горения это можно посмотреть в 2 миссии кампании пробуждение зла, а насчёт Коровина-помоему как то через тригер, но я неуверен поэтому этому можно научится самому в руководстве от Нивала или посмотреть в сценарии 2 сестры ну и ещё вариан полистать ветку по скриптам это где то было.
Сообщения от Скрипты для начинающих
Есть такой вопрос по скриптам
писал когда то карту не помню на какой версии игры похожа 3.0
и с каким модом
долго работал над скриптом
щас решил написать карту для других героев
не могу открыть карту
помогите советом
или содействием
писал когда то карту не помню на какой версии игры похожа 3.0
и с каким модом
долго работал над скриптом
щас решил написать карту для других героев
не могу открыть карту
помогите советом
или содействием
JORAJAN, файл карты точно рабочий? Его размер не 22 байта? С помощью архиватора открывается и показывает каталоги внутри? Другие карты редактор открывает?
JORAJAN, файл карты точно рабочий? Его размер не 22 байта? С помощью архиватора открывается и показывает каталоги внутри? Другие карты редактор открывает?
архиватором открывает... но где там искать ?
Скиньте как вариант карту сюда, я могу проверить откроет ли у меня. Раньше никогда не слышал о такой проблеме.
Скиньте как вариант карту сюда, я могу проверить откроет ли у меня. Раньше никогда не слышал о такой проблеме.
все спасибо нашел проблему из за бардака на дисках
создал карту на 8 игроков или компов .. заметил что комп играет как то нелепо один ИИ сразу не захватывая шахт и двелингов и даже пустого города его рассы бежит прямиком к сопернику и захватывает его потому что тот ваще чуть походил и все ..........
у меня вопрос... можно ли настроить ИИ для игры на данной карте порядок обхода мест ?
у меня вопрос... можно ли настроить ИИ для игры на данной карте порядок обхода мест ?
Кстати, тот же вопрос... ну, немного иначе.
ИИ берет город с максимальным приоритетом, потом должен взять другой, тоже с максимальным, но он просто сидит в первом... хотя приоритет с города первого снят.
ИИ берет город с максимальным приоритетом, потом должен взять другой, тоже с максимальным, но он просто сидит в первом... хотя приоритет с города первого снят.
Доброго времени суток всем.
Кто нибудь может подсказать есть ли скрипт, которым можно менять, во время игры, состав существ нанимаемых в заставе? Речь идёт о двеллингах существ 4-7го уровня, находящихся на карте. То есть, в редакторе карт, поставив такой двеллинг, в его свойствах можно задать кто именно из 4-7уровня существ будет наниматься. Есть ли команда, чтобы то же самое сделать скриптом во время игры. К примеру, в двеллинге нанимаются друиды, после срабатывания скрипта, друиды уже не нанимаются, а нанимаются драконы.
Или, хотя бы, есть ли команда, управляющая приростом нанимаемых существ? Аналогичная "SetObjectDwellingCreatures", но для двеллинга, находящегося за пределами города. Возможно я как-то неправильно пользуюсь "SetObjectDwellingCreatures"? У меня она выглядит вот так - "SetObjectDwellingCreatures( "altdwell", CREATURE_BLADE_JUGGLER, 50 );"
Для города она работает как надо, но когда я пытаюсь применить её к "уличному" двеллингу, скрипт выдаёт ошибку, что то вроде "altdwell" ис нот таун обжект.
Заранее благодарю если кто поделится полезной информацией.
Кто нибудь может подсказать есть ли скрипт, которым можно менять, во время игры, состав существ нанимаемых в заставе? Речь идёт о двеллингах существ 4-7го уровня, находящихся на карте. То есть, в редакторе карт, поставив такой двеллинг, в его свойствах можно задать кто именно из 4-7уровня существ будет наниматься. Есть ли команда, чтобы то же самое сделать скриптом во время игры. К примеру, в двеллинге нанимаются друиды, после срабатывания скрипта, друиды уже не нанимаются, а нанимаются драконы.
Или, хотя бы, есть ли команда, управляющая приростом нанимаемых существ? Аналогичная "SetObjectDwellingCreatures", но для двеллинга, находящегося за пределами города. Возможно я как-то неправильно пользуюсь "SetObjectDwellingCreatures"? У меня она выглядит вот так - "SetObjectDwellingCreatures( "altdwell", CREATURE_BLADE_JUGGLER, 50 );"
Для города она работает как надо, но когда я пытаюсь применить её к "уличному" двеллингу, скрипт выдаёт ошибку, что то вроде "altdwell" ис нот таун обжект.
Заранее благодарю если кто поделится полезной информацией.
zahar0z есть вариант заменить двеллинг на другой с помощью:
ReplaceDwelling(СКРИПТОВОЕ_ИМЯ, ИДЕНТИФИКАТОР_ГОРОДА, СУЩЕСТВО_1, СУЩЕСТВО_2, СУЩЕСТВО_3, СУЩЕСТВО_4)
Сколько существ было доступно в изначальном двеллинге, столько максимум может быть в новом. Существ можно выставлять каких угодно, без привязки к типу двеллинга.
ReplaceDwelling(СКРИПТОВОЕ_ИМЯ, ИДЕНТИФИКАТОР_ГОРОДА, СУЩЕСТВО_1, СУЩЕСТВО_2, СУЩЕСТВО_3, СУЩЕСТВО_4)
Сколько существ было доступно в изначальном двеллинге, столько максимум может быть в новом. Существ можно выставлять каких угодно, без привязки к типу двеллинга.
Благодарю, помогло. Не знал, что этой командой можно выставлять существ без привязки к фракции.
Добавлено через 2 часа 42 минуты
Снова спрашиваю совета.
Написал вот такой скрипт.
function activatorF ()
s_dwe_fa=GetObjectNamesByType("BUILDING_FAIRIE_TREE");
ReplaceDwelling(s_dwe_fa[0], TOWN_PRESERVE, 991 );
Trigger(OBJECT_TOUCH_TRIGGER, "activator", nil );
end;
Trigger(OBJECT_TOUCH_TRIGGER, "activator", "activatorF" );
SetObjectEnabled("activator", nil);
Скрипт заменяет существ доступных для найма, в первом найденном объекте с типом "BUILDING_FAIRIE_TREE" на 991-ое нцф существо. Делается это при прикосновению к "activator", но это уже мелочи и чисто для теста.
Вопрос, как сделать так, чтобы скрипт заменял не только первый, а вообще все найденные объекты такого типа? Нюанс ещё в том, что скрипт должен быть универсальным и работать на разных картах, так что количество таких объектов, не только не известно, но ещё и может быть разным.
И сразу второй вопрос, для уточнения, чисто теоретически, можно же прописать такой скрипт, куда то в файл корневых скриптов или вроде того, чтобы он по автомату срабатывал на всех картах?
Заранее благодарю за помощь.
Добавлено через 2 часа 42 минуты
Снова спрашиваю совета.
Написал вот такой скрипт.
function activatorF ()
s_dwe_fa=GetObjectNamesByType("BUILDING_FAIRIE_TREE");
ReplaceDwelling(s_dwe_fa[0], TOWN_PRESERVE, 991 );
Trigger(OBJECT_TOUCH_TRIGGER, "activator", nil );
end;
Trigger(OBJECT_TOUCH_TRIGGER, "activator", "activatorF" );
SetObjectEnabled("activator", nil);
Скрипт заменяет существ доступных для найма, в первом найденном объекте с типом "BUILDING_FAIRIE_TREE" на 991-ое нцф существо. Делается это при прикосновению к "activator", но это уже мелочи и чисто для теста.
Вопрос, как сделать так, чтобы скрипт заменял не только первый, а вообще все найденные объекты такого типа? Нюанс ещё в том, что скрипт должен быть универсальным и работать на разных картах, так что количество таких объектов, не только не известно, но ещё и может быть разным.
И сразу второй вопрос, для уточнения, чисто теоретически, можно же прописать такой скрипт, куда то в файл корневых скриптов или вроде того, чтобы он по автомату срабатывал на всех картах?
Заранее благодарю за помощь.
zahar0z, а ваш скрипт работает? Есть подозрение на s_dwe_fa[0], так как если не задаватать индексы вручную, то по умолчанию таблицы здесь индексируются с 1.
Чтобы работало для всех зданий, просто обойти все с помощью цикла:
Чтобы работало для всех зданий, просто обойти все с помощью цикла:
s_dwe_fa=GetObjectNamesByType("BUILDING_FAIRIE_TREE");
for i, dwe in s_dwe_fa do
ReplaceDwelling(dwe, TOWN_PRESERVE, 991 );
endЧтобы работало на всех картах, наверное надо править какой-нибудь скрипт из data.pak/scripts/: advmap-startup.lua или advmap-common.lua или common.lua.
Ещё раз спасибо за помощь, сработало и с циклом и с advmap-common.lua.
П.С. да, тот скрипт работал так как я его описал.
П.С. да, тот скрипт работал так как я его описал.
Везёт же людям.
Вот у меня скрипты вообще не работают, хотя ввожу их правильно. (Пользуюсь программой HoMM5 MapScriptEditor
Добавлено через 1 минуту
Наткнулся на ЧаВо. Быть може, оно мне поможет
Добавлено через 16 часов
Чудо!
Во-первых, в редакторе карт открылся и не вылетел редактор скриптов(!).
Во-вторых, сами скрипты заработали. Похоже, где-то я тупил
Вот у меня скрипты вообще не работают, хотя ввожу их правильно. (Пользуюсь программой HoMM5 MapScriptEditor
Добавлено через 1 минуту
Наткнулся на ЧаВо. Быть може, оно мне поможет
Добавлено через 16 часов
Чудо!
Во-первых, в редакторе карт открылся и не вылетел редактор скриптов(!).
Во-вторых, сами скрипты заработали. Похоже, где-то я тупил
Справедливость - авторский глобальный мод
ColouredText - список заклинаний и их уровень в описании существ-колдунов
ColouredText - список заклинаний и их уровень в описании существ-колдунов
И снова всем доброго времени суток, и снова я с вопросами.
Написал вот такое.
function capt_alt_dw (prevowner, newowner, hero, dwell )
alt_dw_x,alt_dw_y,alt_dw_fl = GetObjectPosition(dwell);
QuestionBox("текст c вопросом бла бла бла", "add_alt_dw", nil);
end;
function add_alt_dw ()
for i, pix_dw in allpix_dw do
pix_dw_x,pix_dw_y,pix_dw_fl = GetObjectPosition(pix_dw);
if pix_dw_x == alt_dw_x and
pix_dw_y == alt_dw_y and
pix_dw_fl == alt_dw_fl then
sleep(1);
ReplaceDwelling(pix_dw, TOWN_ACADEMY, 991 );
end;
end;
end;
allpix_dw = GetObjectNamesByType("BUILDING_FAIRIE_TREE");
for i, pix_dw in allpix_dw do
Trigger(OBJECT_CAPTURE_TRIGGER, pix_dw, "capt_alt_dw" );
end;
Теперь, при захвате, любого двеллинга фей на карте, выскакивает вопрос, в случае положительного ответа, строение перестраивается в альтернативный двеллинг с существом нцф 991.
Вся проблема была в том, что команда QuestionBox ссылается на новую функцию, в которой значение "dwell" из функции "capt_alt_dw" теряется, поэтому игре невозможно было задать, какой именно двеллинг перестраивать в этот момент. У меня это пока решено через сравнивание местоположения объектов, но, может это можно сделать как-то адекватнее и проще?
И самый главный вопрос, из за чего этот скрипт не работает на оригинальных мультиплеерных картах в мультиплеере? Исполнение скрипта прописано в advmap-startup.lua. На тех же оригинальных мультиплеерных картах, в сингле, скрипт работает. Так же он работает и на тестовой мультиплеерной карте сделанной мной, правда для этого его нужно прописать в саму карту. Но на оригинальных в мультиплеере ни в какую. Кто нибудь знает в чём причина этого и как это исправить?
Кроме того, есть другой маленький баг, когда герой захватывает двеллинг, сразу выскакивает окно найма, а вопрос о перестройке появляется только после того, как герой из этого окна выйдет. Таким образом, в случае с перестройкой, герой получает возможность нанять прирост и из оригинального строения и из альтернативного, ии собственно так и делает. Может у кого есть идеи как решить эту проблему? "Выключать" строения до касания игрока тоже не вариант, т.к. в таком случае ии игнорирует эти строения.
И ещё такой вопрос, (наверное ещё более нубский чем остальные, прошу понять простить) вообще все эти скрипты, сильно ли грузят
игру? И зависит ли это как то от длинны названий задаваемых значений, т.е. стоит ли задаваемые мной названия делать максимально короткими или это вообще не имеет смысла?
Как обычно, заранее благодарю за помощь.
Написал вот такое.
function capt_alt_dw (prevowner, newowner, hero, dwell )
alt_dw_x,alt_dw_y,alt_dw_fl = GetObjectPosition(dwell);
QuestionBox("текст c вопросом бла бла бла", "add_alt_dw", nil);
end;
function add_alt_dw ()
for i, pix_dw in allpix_dw do
pix_dw_x,pix_dw_y,pix_dw_fl = GetObjectPosition(pix_dw);
if pix_dw_x == alt_dw_x and
pix_dw_y == alt_dw_y and
pix_dw_fl == alt_dw_fl then
sleep(1);
ReplaceDwelling(pix_dw, TOWN_ACADEMY, 991 );
end;
end;
end;
allpix_dw = GetObjectNamesByType("BUILDING_FAIRIE_TREE");
for i, pix_dw in allpix_dw do
Trigger(OBJECT_CAPTURE_TRIGGER, pix_dw, "capt_alt_dw" );
end;
Теперь, при захвате, любого двеллинга фей на карте, выскакивает вопрос, в случае положительного ответа, строение перестраивается в альтернативный двеллинг с существом нцф 991.
Вся проблема была в том, что команда QuestionBox ссылается на новую функцию, в которой значение "dwell" из функции "capt_alt_dw" теряется, поэтому игре невозможно было задать, какой именно двеллинг перестраивать в этот момент. У меня это пока решено через сравнивание местоположения объектов, но, может это можно сделать как-то адекватнее и проще?
И самый главный вопрос, из за чего этот скрипт не работает на оригинальных мультиплеерных картах в мультиплеере? Исполнение скрипта прописано в advmap-startup.lua. На тех же оригинальных мультиплеерных картах, в сингле, скрипт работает. Так же он работает и на тестовой мультиплеерной карте сделанной мной, правда для этого его нужно прописать в саму карту. Но на оригинальных в мультиплеере ни в какую. Кто нибудь знает в чём причина этого и как это исправить?
Кроме того, есть другой маленький баг, когда герой захватывает двеллинг, сразу выскакивает окно найма, а вопрос о перестройке появляется только после того, как герой из этого окна выйдет. Таким образом, в случае с перестройкой, герой получает возможность нанять прирост и из оригинального строения и из альтернативного, ии собственно так и делает. Может у кого есть идеи как решить эту проблему? "Выключать" строения до касания игрока тоже не вариант, т.к. в таком случае ии игнорирует эти строения.
И ещё такой вопрос, (наверное ещё более нубский чем остальные, прошу понять простить) вообще все эти скрипты, сильно ли грузят
игру? И зависит ли это как то от длинны названий задаваемых значений, т.е. стоит ли задаваемые мной названия делать максимально короткими или это вообще не имеет смысла?
Как обычно, заранее благодарю за помощь.
Статистика
Приветствуем новейшего участника:
Emil