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

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

Аватар пользователя
как работает функция SetObjectiveProgress?
Когда квест в дереве свойств карты создаёте, там можно задавать этапы, правой кнопкой по какому-то не помню названия пункту, нажать add, для каждого этапа указать путь к тексту описания. В квестлоге будет выводиться вначале основное описание, потом добавочное, соответствующее текущему этапу.
Так вот, если квест имеет такие этапы, то при запуске он будет на нулевом, а с помощью функции его можно будет продвигать далее, например перейти на 1 этап:
SetObjectiveProgress('название_квеста', 1);
Спасибо, понял)
Аватар пользователя
А как убрать круги фракции под нейтралами?И еще возможно ли как-то ставить существ на карту из армии героя?
Аватар пользователя
А как убрать круги фракции под нейтралами?
Вот тут я давал код раньше. В документации написано, что перед отключением кругов нужно выключить взаимодействие с существами (чтобы на них нельзя было напасть). Можно ли не отключать - не проверял.
возможно ли как-то ставить существ на карту из армии героя?
Я в карте "Путь героя" реализовывал подобный функционал, но это заняло несколько сотен строк кода, так как возникает вопрос как инициировать установку, как выбрать сколько существ выставлять и так далее. В самом простом случае это подразумевает вызов 2-х функций - удалить определенных существ из армии героя (RemoveCreatures), поставить их в таком же количестве на карту (CreateMonster).
Аватар пользователя
Спасибо большое!
Еще вопрос появился. Как сделать так, чтобы при первом посещении региона срабатывала одна функция, а при втором другая? Где-то на форуме уже спрашивали, но я не нашел.

Все получилось) Сделал через if и else.

И все же вопрос. Можно ли это сделать другим путем? :)
В ответ пользователю AstralLein
Аватар пользователя
AstralLein
Можно ли как-то на карте запретить читы?

Добавлено через 37 секунд
Скажем, скрипт, убивающий главного героя при использовании читов?
Можете попробовать убирать изменения, благодаря которым становится возможным открывать консоль и вводить в нее команды, через функцию consoleCmd.
Что-то вроде
consoleCmd('unbind show_console')
или
consoleCmd('setvar dev_console_password = ')
и делать это, например, в бесконечном цикле.
Я это не проверял, но в теории такая штука должна сработать.

Ну и самое главное: такой античит скрипт так же легко удаляется из общего скрипта карты при желании.

Добавлено через 1 час 8 минут
Cirillo
Еще вопрос появился. Как сделать так, чтобы при первом посещении региона срабатывала одна функция, а при втором другая? Где-то на форуме уже спрашивали, но я не нашел.

Все получилось) Сделал через if и else.

И все же вопрос. Можно ли это сделать другим путем? :)
С if, по-моему, самый правильный и логичный вариант. Но можно еще поставить триггер на вызов первой функции и, уже в ней, переназначить на вторую.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
С if, по-моему, самый правильный и логичный вариант. Но можно еще поставить триггер на вызов первой функции и, уже в ней, переназначить на вторую.

А как это правильно в lua написать? Можно небольшой пример.

И вот еще что. Почему карта с диалоговой сценой первый раз работает нормально, а при последующих запусках карты при начале проигрывания диалога игра вылетает. Удаляешь скрипт запуска диалога все нормально. Что делать не знаю.
Аватар пользователя
А можете написать сам скрипт в бесконечном цикле?
function foo()
while 1 do
-- сюда вставлять код
sleep(10);
end
end

startThread(foo)
Как сделать так, чтобы при первом посещении региона срабатывала одна функция, а при втором другая?
region_visit_counter = 0;

function foo()
region_visit_counter = region_visit_counter + 1;
if (region_visit_counter == 1) then
-- первое посещение, вызвать подходящую функцию
else
-- все последующие посещения, вызвать другую функцию
end
end
Спасибо)
В ответ пользователю Ment
А можно скрипт для того что бы вражеский герой сидел в замке и копил армию? И ещё что бы когда входишь на какую то территорию начинался бой с теми кого выставил, но что бы эти существа на карте стояли как единички а в бою большие стеки. И ещё одно запретить покупку героев в замках у всех и отменить на карте заклинания астральные врата и портал в город

Добавлено через 3 минуты
А ещё, я поставил задание в хижине пророка выбрал тип награды армия а где вписать каких существ дать?

Добавлено через 6 минут
А ещё как в крипте выставить определённое количество существ?
Аватар пользователя
Не работает скрипт против читов. Пробовал оба варианта.

Добавлено через 2 минуты
Причем, дело походу в самом скрипте, ибо я эксперемента ради подставил команду enable_cheats в скрипт. И ничего не происходило.

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

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
Аватар пользователя
Каждый последний день месяца герою прибавляется 2 ед. к колдовству. Как реализовать условие?
Всмысле проверить что сейчас последний день месяца? Например так:
if ((GetDate(WEEK) == 4) and (GetDate(DAY_OF_WEEK) == 7)) then ...
что бы эти существа на карте стояли как единички а в бою большие стеки
В редакторе надо им еженедельный рост отключить, в скриптах убрать стандартный обработчик касания и повесить свой. Недавно давал ссылку как это сделать. В своём обработчике запускать какой угодно бой через StartCombat(). Эта функция в том числе имеет возможность задать каллбэк (название другой функции, которая будет вызвана после завершения этой, то есть после боя). В этом каллбэке проверяем что герой победил и удаляем соответствующую единичку.
отменить на карте заклинания астральные врата и портал в город
в настройках карты в редакторе есть закладка заклинания, где можно убирать ненужные.
я поставил задание в хижине пророка выбрал тип награды армия а где вписать каких существ дать?
Попробуйте по пункту с типом награды или следующим за ним нажать правой кнопкой, там должнен в меню быть пункт add. В одном из официальных мануалов, что в папке с игрой лежат, всё это очень подробно описывалось.
А ещё как в крипте выставить определённое количество существ?
Крипта, имеется ввиду сокровищница? Либо как мод, редактируя ресурсы игры, либо снова убирать стандартный обработчик, ставить свой и реализовывать какой угодно бой через StartCombat().

Статистика

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

Сейчас на сайте 8 пользователей 1353 гостей