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

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

В ответ пользователю Jack_of_shadows
8 лет назад
Крипта всмысле склеп, а так огромное спасибо завтра буду пробовать осуществлять. В лучшем случаи хочу создать кампанию про Сайруса в молодости:)

Добавлено через 46 минут
-- отключаем выделение и ставим мирную иконку при наведении
SetObjectEnabled(npc, nil);
SetDisabledObjectMode(npc, DISABLED_INTERACT);
sleep(1)
SetMonsterSelectionType(npc, 0);

-- функция-обработчик тыркания - необязательный параметр
if(func ~= nil) then
Trigger(OBJECT_TOUCH_TRIGGER, npc, func);
end

-- имя NPC - необязательный параметр
if(name ~= nil) then
SetMonsterNames(npc, MONSTER_NAME_SINGLE, name);
end

end

А можно для тупых то что в скобках нужно менять? Если да то что зачит nil, DISABLED_INTERACT, npc это нужно имя придумать вписать в строчку name а потом сюда или нет, OBJECT_TOUCH_TRIGGER, npc, func и что значит это name ~= nil) then
SetMonsterNames(npc, MONSTER_NAME_SINGLE, name);?:confused:
Аватар пользователя
8 лет назад
Годрикова впадина, вы, фигурально выражаясь, вырвали фразу из контекста, то есть код из функции.
npc, func и name это были её параметры, описание которых с примером использования было по ссылке дано.
nil - это одно из ключевых слов язык lua, у него много разных вариантов использования в коде, всех так сразу не опишешь.
DISABLED_INTERACT, OBJECT_TOUCH_TRIGGER - именованные константы, их расшифровку всегда можно найти рядом с функцией, для которой они предназначены.
Если код моей функции кажется слишком сложным, суть то не в нём, а в том, что даны все необходимые названия стандартных функций, и для отключения объекта, и для навешивания на него своего обработчика. А это знание уже 90% решения вашей задачи.
В ответ пользователю Годрикова впадина
Аватар пользователя
8 лет назад
Годрикова впадина
Как сделать пристань или причал? копался, но не нашёл
1.Сделай сам водоем.2.Во вкладке Terraforming тебе нужна кнопка ramp,жми её.3.На границе между водой и землей жмешь мышкой и держи секунд 5 и потом тянешь мышь в сторону воды и у тебя должен создаться переход между землей и водой.4.Ставишь рядом верфь,и там покупаешь корабли и все,вот тебе и причал.

Добавлено через 24 минуты
Годрикова впадина,а если ты хочешь причал рядом с замком(чтоб верфь была в замке) делай все до 4-го пункта,тебе надо будет построить верфь в замке и корабли можно будет купить там.НО пытаться строить причалы с помощью замков не советую так как замки часто вредничают и не видят воду и место для размещения кораблей(говорю по своему опыту).
8 лет назад
Приветствую. Создаю карту для мультиплеера, и задумка ее такова, что по прошествию 2,5 месяцев героя игрока переносит к порталу, ведущему к центру карты, где будет проходить баталия с остальными игроками. И скриптами я не владею от слова никак :с. Прошу о помощи. Есть ли такой скрипт, который может устроить такой расклад событий?
В ответ пользователю Sarcastrophe.
Аватар пользователя
8 лет назад
Sarcastrophe.
Приветствую. Создаю карту для мультиплеера, и задумка ее такова, что по прошествию 2,5 месяцев героя игрока переносит к порталу, ведущему к центру карты, где будет проходить баталия с остальными игроками. И скриптами я не владею от слова никак :с. Прошу о помощи. Есть ли такой скрипт, который может устроить такой расклад событий?
В целом, это выглядит так. Единственная проблема - выбор героя игрока, которого надо телепортировать.
function NewDay()
if GetDate() == 71 then
SetObjectPosition('имя_героя_1', коорд_х, коорд_у, этаж_0_или_1)
SetObjectPosition('имя_героя_2', коорд_х, коорд_у, этаж_0_или_1)
-- ... и так далее
end
end

Trigger(NEW_DAY_TRIGGER, 'NewDay')
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
8 лет назад
RedHeavenHero
В целом, это выглядит так. Единственная проблема - выбор героя игрока, которого надо телепортировать.
function NewDay()
if GetDate() == 71 then
SetObjectPosition('имя_героя_1', коорд_х, коорд_у, этаж_0_или_1)
SetObjectPosition('имя_героя_2', коорд_х, коорд_у, этаж_0_или_1)
-- ... и так далее
end
end

Trigger(NEW_DAY_TRIGGER, 'NewDay')

RedHeavenHero, огромнейшая благодарность. И еще немного беспокойства, если можно. Герои на карте выбираются игроком или рандомом, как работать в таком случае? Как я понимаю, нужно выбрать для этого блок старта героя, так?
Аватар пользователя
8 лет назад
Народ а кто-то знает как открыть встроенный редактор скриптов (Map Propertires>Script>Edit Script),нажимаю Edit Script и все вылетает,пусть я пользуюсь HoMM5 Map Scripts Editor но адекватного решения этих вылетов я так и не нашел в инете и думаю не меня одного интересует как это исправить.Буду признателен за решение.
В ответ пользователю Sarcastrophe.
Аватар пользователя
8 лет назад
Sarcastrophe.
RedHeavenHero, огромнейшая благодарность. И еще немного беспокойства, если можно. Герои на карте выбираются игроком или рандомом, как работать в таком случае? Как я понимаю, нужно выбрать для этого блок старта героя, так?
В общем случае массив с именами всех героев игрока можно получить вызовом функции GetPlayerHeroes(номер_игрока). Вопрос тут скорее в том, какого именно из героев вы хотите телепортировать.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
8 лет назад
Вопрос насчёт отскакивающих сообщений. Обязательно, чтобы они отлетали от объекта? Просто, в некоторых случаях я не уверен, что могу корректно выбрать объект в поле зрения игрока на момент скрипта.

Суть в том, чтобы по экрану проплыло сообщение "основное задание обновлено". Пока что оно отскакивает от главного героя, но это крайне невыгодно. Ведь взять гарнизон может и не Маркел.

Добавлено через 2 минуты
И еще как заставить скрипт боя обновляться? Я обратил внимание, что он как-то работает очень одноразово... Как заставить его в начале боя идти сначала, а не с того места, где остановился в прошлом бою? Тоесть как в конце боя, при любом раскладе, сбросить переменные скрипта до 0?
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
Аватар пользователя
8 лет назад
Суть в том, чтобы по экрану проплыло сообщение "основное задание обновлено". Пока что оно отскакивает от главного героя, но это крайне невыгодно. Ведь взять гарнизон может и не Маркел.
Я думаю в этом и суть отплывающего сообщения, что оно привязано к объекту. В большинстве случаев можно отследить какой герой выполнил событие, оно передается и по триггерам касания, и по завершению боев и много где ещё.
Как заставить его в начале боя идти сначала, а не с того места, где остановился в прошлом бою?
Так он же в начале каждого боя вызывает функцию Start() и дальше по разным событиям другие функции. Переопределив свою функцию Start() можно в ней всё что угодно сбросить. Если вы скрипт оборачиваете в отдельный поток, наверное надо отследить событие конца боя и выйти из него.
Аватар пользователя
8 лет назад
Ну вот как будет выглядить скрипт следующего вида: как только герой "hero" заканчивает любую битву, с него сбрасывается скрипт "battle" и снова накладывается.

Добавлено через 4 минуты
Насколько я помню, у уважаемого RedHeavenHero в кампании Империя Единорога пояс элементалей позволял Варенсу в начале боя призвать элементалей. И вот этот скрипт как раз работал безукоризненно. В начале каждого боя, всегда.
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
Аватар пользователя
8 лет назад
И еще как заставить скрипт боя обновляться? Я обратил внимание, что он как-то работает очень одноразово... Как заставить его в начале боя идти сначала, а не с того места, где остановился в прошлом бою? Тоесть как в конце боя, при любом раскладе, сбросить переменные скрипта до 0?
Странно, никогда такого не замечал. Обычный SetHeroCombatScript отрабатывал исправно, запуская скрипт с начала.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю орлан-1
Аватар пользователя
8 лет назад
орлан-1
Народ а кто-то знает как открыть встроенный редактор скриптов (Map Propertires>Script>Edit Script),нажимаю Edit Script и все вылетает,пусть я пользуюсь HoMM5 Map Scripts Editor но адекватного решения этих вылетов я так и не нашел в инете и думаю не меня одного интересует как это исправить.Буду признателен за решение.
Не игнорте:smile35:
Аватар пользователя
8 лет назад
Это постоянная проблема, я её у себя никак не решил. Пользуюсь блокнотом.
 

К А
Стикеры GBF в Telegram

Статистика

Приветствуем новейшего участника: recijeb