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

Сообщения от Несколько вопросов о скриптах

Пока нет оценок — будьте первым!
Аватар пользователя
В общем, я тут решил сделать несколько скриптов, и у меня возникло несколько вопросов, хотя мануалы я и штудировал долго.
1. Банальный MessageBox. Ну создал я txt файл, какой мне путь-то до него в скрипте указывать? Какая папка начальная, нужно ли писать расширение файла?
2. Вопрос не совсем о скриптах, но всё же. Как сделать задание, целью которого будет захват множества одинаковых крестьянских хижин (как в первой карте Владык Севера)?
3. Как сделать, чтобы при пересечении региона, вражеский герой бежал из одного места в другое, при этом камера следовала за ним, не давая управления игроку?
4. Как сделать некоторые места на карте изначально открытыми?
Аватар пользователя
1. если txt файл лежит в основной папке карты(т.е. Maps/SingleMissions/имя_карты), то путь к нему можно указать таким образом:
GetMapDataPath()..'имя_файла.txt'

2. ну самым простым способом будет повесить на все необходимые объекты OBJECT_CAPTURE_TRIGGER и завести переменную, которая будет хранить число захваченных объектов:
huts = {таблица_скриптовых_имен_объектов}
huts_captured = 0 -- число захваченных объектов

for i, hut in huts do
Trigger(OBJECT_CAPTURE_TRIGGER, hut, 'CaptureHut')
end

-- функция, срабатывающая при захвате объекта
function CaptureHut(p_owner, n_owner)
-- новый владелец объекта - игрок?
if n_owner == PLAYER_1 then
-- увеличить число захваченных
huts_captured = huts_captured + 1
-- если все захвачены и задание активно
if huts_captured = length(huts) and GetObjectiveState('имя_задания') == OBJECTIVE_ACTIVE then
-- завершить задание
SetObjectiveState('имя_задания', OBJECTIVE_COMPLETED)
end
else -- если новый владелец - не игрок?
if p_owner == PLAYER_1 then
-- уменьшить число захваченных, если игрок был предыдущим владельцем
huts_captured = huts_captured - 1
end
end
end
3. MoveHeroRealTime() в помощь
4. OpenCircleFog() в помощь

p.s. советую читать мануалы повнимательнее, вопросы максимально банальные и раскрываются в любых гайдах
Нет войне.
В ответ пользователю Gerter
Аватар пользователя
Спасибо. С большей частью проблем разобрался, а вот проклятый MessageBox никак не вылезает. Пути уже все возможные перепробовал. Никак. Например MessageBox я вызываю так. В чём моя ошибка?
MessageBox("Maps/SingleMissions/Revolution vol2/exroadmsg.txt");
Аватар пользователя
ну если файл правильно расположен, то надо еще слэш добавить:
MessageBox("/Maps/SingleMissions/Revolution vol2/exroadmsg.txt");
а лучше всего, как я раньше писал:
MessageBox(GetMapDataPath().."exroadmsg.txt");
Нет войне.
В ответ пользователю Gerter
Аватар пользователя
Даже со слэшем выдаёт всё ту же ошибку: Empty message text!
Про GetMapDataPath не очень понял.

И ещё, извиняюсь за навязчивость, не могли бы вы подсказать как сделать такую вещь: если герой выполнил квест, то он может пройти к хранителю ключа, а если не выполнил, то при входе в регион выводится сообщение и героя телепортирует назад.

Статистика

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