Перейти к содержанию

Сообщения от Скрипты

В ответ пользователю RedHeavenHero
RedHeavenHero
Попробуйте открыть карту архиватором и редактировать файл скрипта карты блокнотом. Имя файла - MapScript.lua.

А как скрипт применить к отдельным существам? Мне нужно, чтобы на карте был мертвый монстр и с ним нельзя было начать бой.
Аватар пользователя
Все скрипты пишутся в общий файл.
В теме уже было про мёртвых монстров. Там как-то так:
SetObjectEnabled('имя', nil)
PlayObjectAnimation('имя', 'death', ONESHOT_STILL)
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
RedHeavenHero
Все скрипты пишутся в общий файл.
В теме уже было про мёртвых монстров. Там как-то так:
SetObjectEnabled('имя', nil)
PlayObjectAnimation('имя', 'death', ONESHOT_STILL)
Открыл карту архивом, там нету файла MapScript. Попробовал через MapEditorScript, создал файл, написал скрипт, сохранил, зашел в карту, выбрал этот файл в параметрах существа, в "Script" и ничего.
Аватар пользователя
Bravo1853, в редакторе в Map Properties Tree есть пункт MapScript - основной скрипт карты, выполняется автоматически при старте. Если он пустой, нужно в нем указать путь до файла, или создать новый. Весь код писать в этот единственный файл, те, что подключаются в свойствах монстров и прочих объектов на практике не используются. Когда разберетесь с файлом, пишите в него лучше через блокнот или MapScriptsEditor, у многих при обращении к нему через редактор он в большинстве случаев крашится.
В ответ пользователю Jack_of_shadows
Jack_of_shadows
Bravo1853, в редакторе в Map Properties Tree есть пункт MapScript - основной скрипт карты, выполняется автоматически при старте. Если он пустой, нужно в нем указать путь до файла, или создать новый. Весь код писать в этот единственный файл, те, что подключаются в свойствах монстров и прочих объектов на практике не используются. Когда разберетесь с файлом, пишите в него лучше через блокнот или MapScriptsEditor, у многих при обращении к нему через редактор он в большинстве случаев крашится.
Я создал через MSE MapScript.lua, вписал туда скрипт. Указал путь до файла. А как теперь сделать, чтобы монстр на карте был мертв?
Аватар пользователя
Возможно имя монстру забыли присвоить? Поле name. То же, которое и в скрипте было указано как 'имя'. И если вместо смерти монстра раскорячит во все стороны, значит у него нет соответствующей анимации, нужно попробовать другого (там 50 на 50 у кого есть, у кого нет. У альт. апгрейдов подключенная анимация встречается чаще).
В ответ пользователю Jack_of_shadows
Jack_of_shadows
Возможно имя монстру забыли присвоить? Поле name. То же, которое и в скрипте было указано как 'имя'. И если вместо смерти монстра раскорячит во все стороны, значит у него нет соответствующей анимации, нужно попробовать другого (там 50 на 50 у кого есть, у кого нет. У альт. апгрейдов подключенная анимация встречается чаще).
Всё получилось) Да, действительно не указал имя монстра. Спасибо большое) Ещё один вопрос. Как убрать юбку у монстра?
Аватар пользователя
SetObjectEnabled('имя', nil);
SetDisabledObjectMode('имя', DISABLED_INTERACT);
sleep(1)
SetMonsterSelectionType('имя', 0);
выключает взаимодействие, изменяет курсор с меча на лошадку и убирает юбку. Последовательность команда важна именно такая.
Аватар пользователя
В конец.

Добавлено через 4 минуты
Точно не помню, но, на всякий случай, вторую строку поместил после отключения и паузы.
SetObjectEnabled('имя', nil)
sleep(1)
SetDisabledObjectMode('имя', DISABLED_INTERACT)
SetMonsterSelectionType('имя', 0)
PlayObjectAnimation('имя', 'death', ONESHOT_STILL)
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
Подскажите насчет скрипта атаки монстра, чтобы она бесконечно проигрывалась. Попробовал скрипт ниже и не получилось.
function play_anims()
	PlayObjectAnimation("15", "attack", IDLE)
	sleep(3)
end
Аватар пользователя
Bravo1853, функцию вызывали хотя бы? При старте исполняется только свободно стоящий код, все что внутри функций исполняется когда функцию вызываешь. И стандартные названия анимации обычно такие:
"attack00", "attack01", "rangeattack", "cast", "specability", "death", "hit", "happy", "idle00"
Как сделать интервал между проигрыванием анимации? Ставил значение в sleep больше 1000, никаких изменений. И ещё, как сделать, чтобы анимации проигрывались в определенной последовательности? Например: сначало attack, потом happy.
Аватар пользователя
Пауза, наверное, слишком большая. 1000 - это 200 секунд.
Чтобы анимация проигрывалась последовательно, нужно написать команды проигрывания анимации в требуемой последовательности, разделив, при необходимости паузами.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
RedHeavenHero
Пауза, наверное, слишком большая. 1000 - это 200 секунд.
Чтобы анимация проигрывалась последовательно, нужно написать команды проигрывания анимации в требуемой последовательности, разделив, при необходимости паузами.
Так суть в том, что пауза что-то не работает, при значении 1000, никакой паузы нету. Может в самом скрипте ошибка. Вот код:
PlayObjectAnimation('03', 'attack00', IDLE)
sleep(50)

Статистика

Приветствуем новейшего участника: Вязов Анатолий Аркадьевич

Сейчас на сайте 9 пользователей 1401 гостей