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

Сообщения от Присоединение героя и пара вопросов

Пока нет оценок — будьте первым!
Аватар пользователя
10 лет назад
Так-с, делаю я карту, в которой есть несколько героев, которые должны присоединиться. Но помимо этого есть еще другие вопросы:
1) Во-первых, у меня не выходит сделать так, чтоб когда заходишь в нужный регион, выполнялась цель карты и вылезала новая.
SetObjectiveState(objectiveName, state, playerID = PLAYER_1);, если я правильно понимаю тут нужна.
Вместо state я вставил OBJECTIVE_COMPLETED, имя подставил тоже правильное, вместо playerID у меня PLAYER_1, но ничего не получается. Когда игрок проходит по региону, он тормозит, как только заходит в него, по-идее тут должно что-то происходить, но нет.
2) На основе вышесказанного (то бишь когда зайду в определенный регион), я должен присоединить героя. Я, наверное, должен использовать
SetObjectOwner(objectName, playerID);
Я не знаю, работает или нет, так что первый вопрос самый важный.

Добавлено через 22 минуты
О, и еще. Я сделал замок, в котором все построено: дом старейшин и замок до конца. Нет никаких таверн или пристроек где можно купить существ. Герой врага стоит там, потому что его ИИ выключен. Я замечал, как в замке появлялся и исчезал резко какой-то герой. Я не понимаю, он просто не может ничего купить. Ни пристроек, ни таверны, нету рядом никаких мест для подкреплений. Ничего. Объясните?
Аватар пользователя
10 лет назад
Я не эксперт в скриптах, но, может, помогу чем-нибудь...:)
Сможете прислать ваш текст со скриптом?
Аватар пользователя
10 лет назад
SetRegionBlocked("VillinaLock", true, 4); 
SetRegionBlocked("ScarecrowLock", true, 3);
SetRegionBlocked("GolemLock", true, 3);
EnableHeroAI("Skeggy", false);

SetObjectiveVisible("MeetScarecrow", false, PLAYER_1);
SetObjectiveVisible("MeetGolem", false, PLAYER_1);
SetObjectiveVisible("DefeatCyclop", false, PLAYER_1);

function MeetCyclopF()
SetObjectiveVisible("DefeatCyclop", true, PLAYER_1);
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "MeetCyclop", nil);
end;

function MeetVillina()
SetObjectiveState("MeetVillina", OBJECTIVE_COMPLETED, 1);
SetObjectiveVisible("MeetScarecrow", true, PLAYER_1);
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "VillinaLock", nil);
end;

function MeetScarecrow()
SetObjectiveState("MeetScarecrow", OBJECTIVE_COMPLETED, 1);
AddHeroCreatures("Ally", CREATURE_WOLF, 29);
AddHeroCreatures("Toto", CREATURE_WOLF, 29);
SetObjectOwner("Scarecrow", PLAYER_1);
SetObjectiveVisible("MeetGolem", true, PLAYER_1);
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "ScarecrowLock", nil);
end;

function MeetGolem()
SetObjectiveState("MeetGolem", OBJECTIVE_COMPLETED, 1);
AddHeroCreatures("Ally", CREATURE_IRON_GOLEM, 10);
AddHeroCreatures("Toto", CREATURE_IRON_GOLEM, 10);
SetObjectOwner("Golem", PLAYER_1);
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "GolemLock", nil);
end;

function MeetPeasants()
if IsHeroAlive("Skeggy");
then MessageBox("/Maps/SingleMissions/Oz/MeetPeasants.txt");
else Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Peasants", nil);
MessageBox("/Maps/SingleMissions/Oz/MeetPeasants2.txt");
RemoveObject("Peasants");
end;
end;

Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Peasants", "MeetPeasants");
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "MeetCyclop", "MeetCyclopF");
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "GolemLock", "MeetGolem");
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "VillinaLock", "MeetVillina");
Trigger(REGION_ENTER_AND_STOP_TRIGGER, "ScarecrowLock", "MeetScarecrow");


Добавлено через 35 секунд
Да, да, я делаю карту про "Волшебника Изумрудного города", не гнобите меня
В ответ пользователю Pit Lord
Аватар пользователя
10 лет назад
У вас после if IsHeroAlive("Skeggy"); слово then стоит после точки с запятой. После строчки с условием вообще не должно быть точки с запятой
if IsHeroAlive("Skeggy")
then MessageBox("/Maps/SingleMissions/Oz/MeetPeasants.txt");
Вроде так...
Аватар пользователя
10 лет назад
Конечно, спасибо, но этот вопрос сейчас самый последний. Мне нужно понять, почему не выполняется цель карты, когда я захожу в регион
В ответ пользователю Pit Lord
Аватар пользователя
10 лет назад
Возможно, что как раз из-за этой ошибки они и не работают. Ведь если ошибка-синтаксическая, то не будет работать весь код. Попробуйте проверить:)
Аватар пользователя
10 лет назад
Нет, нет, все равно не срабатывает. Просто не срабатывает
В ответ пользователю Pit Lord
Аватар пользователя
10 лет назад
Попробуйте добавить перед SetObjectiveVisible строку GetObjectiveState("MeetVillina", OBJECTIVE_ACTIVE, 1);
Так же в Properties Tree посмотрите вид задания(он должен быть Manual)
Аватар пользователя
10 лет назад
Легче всего открыть консоль и посмотреть, на что оно ругается. Думаю, в данном случае именно будет ругань.
В ответ пользователю Ment
Аватар пользователя
10 лет назад
Ment, ответьте мне, пожалуйста, в теме "Скрипты", если не трудно
В ответ пользователю Ment
Аватар пользователя
10 лет назад
Ment
Легче всего открыть консоль и посмотреть, на что оно ругается. Думаю, в данном случае именно будет ругань.

ТУТ ЕСТЬ КОНСОЛЬ? Ничего себе, я подозревал, но не думал что все настолько просто. А как ее включить и посмотреть?
Аватар пользователя
10 лет назад
Автопереведено
/topic/3596/
В ответ пользователю Pit Lord
Аватар пользователя
10 лет назад
Pit Lord
ТУТ ЕСТЬ КОНСОЛЬ? Ничего себе, я подозревал, но не думал что все настолько просто. А как ее включить и посмотреть?

Конечно же есть
Аватар пользователя
10 лет назад
Нет, консоль не открыть. И читы тоже... Не выходит как в инструкции - нет папки в profiles (есть только default_profile) моего профиля. На Ё не выходит ничего. Хз что такое

Статистика

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

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