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

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

Аватар пользователя
10 лет назад
Необходимо заблокировать регион (проход) определенному компьютерному герою.
С помощью SetRegionBlocked на условии не получилось - компьютерный герой всё равно проходит сквозь блок.
Да и работает это всё на триггерах, которые активирует и игрок-человек (что выглядит ужасно (пустые остановки)).

Сделал так
SetRegionAutoObjectEnable ("kendal00", REGION_AUTOACTION_ON_ENTER, -1, -1, "Deleb", "kendal0", 0);
SetRegionAutoObjectEnable ("kendal00", REGION_AUTOACTION_ON_EXIT, -1, -1, "Deleb", "kendal0", 1);
Получилось.
Но возникла проблема, что компьютерный герой теперь постоянно делает попытки пройти сквозь блок (это немудрено, ибо после выхода героя из региона - проход вновь становится "открытым").

Может есть лучше способ заблокировать проход для определенного героя?
Аватар пользователя
10 лет назад
С помощью SetRegionBlocked на условии не получилось - компьютерный герой всё равно проходит сквозь блок.
Довольно странно, не сталкивался с такой ошибкой. А как ты это писал? У функции SetRegionBlocked есть параметр, отвечающий за номер игрока, для которого работает функция. То есть для второго игрока (неважно, комп или нет):
SetRegionBlocked("имя региона", true, 2)
Если нумерация там с единицы, мне казалось, что так. Если с нуля, то соответсвенно
SetRegionBlocked("имя региона", true, 1)
Аватар пользователя
10 лет назад
Комп не проходит, если изначально сделать регион блокированным.
Если же он будет вставать на соседний регион (рядышком), который активирует блокирующий регион, то герой проходит сквозь блок. Хотя если я переделываю скрип под себя, то не могу пройти.

Тем более в данном случае мне нужно ограничить ареал одного героя компьютера и не затронуть других героев этого игрока.
Аватар пользователя
10 лет назад
Если же он будет вставать на соседний регион (рядышком), который активирует блокирующий регион, то герой проходит сквозь блок. Хотя если я переделываю скрип под себя, то не могу пройти.
Так просто сделать так, чтобы он этого не делал ) Там вроде в REGION_ENTER_AND_STOP_TRIGGER нет параметра, отвечающего за номер игрока, но можно легко проверить принадлежность героя, который вошёл в регион.
Тем более в данном случае мне нужно ограничить ареал одного героя компьютера и не затронуть других героев этого игрока.
Ой, если так... Хм, да, проблема. Надо думать.
Аватар пользователя
10 лет назад
А сделать этого героя новым игроком-союзником нельзя, да?
Аватар пользователя
10 лет назад
А сделать этого героя новым игроком-союзником нельзя, да?
Нет. Это противоречит замыслу.
Аватар пользователя
10 лет назад
К сожалению, у меня нет идей.
Аватар пользователя
10 лет назад
Ладно, оставлю так. Следующий вопрос.
Стартовые 3 бонуса в кампании. Возвести строение в городе.
Как я понял - выбор ограничен списком редактора и ID строений использовать не получится?
TB_BLACKSMITH
TB_DWELLING_1
TB_DWELLING_2
TB_DWELLING_3
TB_DWELLING_4
TB_DWELLING_5
TB_DWELLING_6
TB_DWELLING_7
TB_FORT
TB_GRAIL
TB_MAGIC_GUILD
TB_MARKETPLACE
TB_SHIPYARD
TB_SPECIAL_0
TB_SPECIAL_1
TB_SPECIAL_2
TB_SPECIAL_3
TB_SPECIAL_4
TB_SPECIAL_5
TB_SPECIAL_6
TB_TAVERN
TB_TOWN_HALL

Строения, для которых не выполнены условия постройки, тоже не строятся. Верно?

Что за "TB_SPECIAL"?
Аватар пользователя
10 лет назад
Строения, для которых не выполнены условия постройки, тоже не строятся.
Должны строиться по идее. Хотя вообще я слабо знаком с вопросом, не делал кампаний.
Аватар пользователя
10 лет назад
По поводу ареала обитания героя

А ведь можно попробовать сделать с помощью SetAIHeroAttractor.
Правда не совсем понятно, насколько далеко его будет отпускать объект...
Аватар пользователя
10 лет назад
А ведь можно попробовать сделать с помощью SetAIHeroAttractor.
Правда не совсем понятно, насколько его будет отпускать объект...
Ну да, можно было бы сделать какой-нибудь портал или что-то вроде того... Но скрипт этот очень уж непредсказуемо работает, если вообще работает. И не факт, что поиск пути ИИ будет работать верно с ним.
Аватар пользователя
10 лет назад
Посмотрел я SetAIHeroAttractor.
При 2 - буквально прилипает к объекту)
При 1 - уже почти пофиг на объект.

Но сделаю его (с 2кой). Он больше мне подходит, убирает тупое стояние героя возле "стены" и уменьшает ход компьютера.
Аватар пользователя
10 лет назад
Подскажите: как взять параметр героя при исполнении одной функции и использовать эти данные при действии другой функции?
Аватар пользователя
10 лет назад
Квант, сохранить в глобальную переменную, если я правильно понял суть задачи.
Аватар пользователя
10 лет назад
Подскажите, как это сделать.
GetGameVar и SetGameVar?

как-то так?
GetGameVar ("X") = GetHeroLevel ("Anabel")
SetGameVar ("X", 12)

Статистика

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