Jewily, хотя ваша функция рабочая (спасибо, буду знать), но так не работает в моём случае.
Дело в следующем, - как я сказала, я пытаюсь сделать что-то вроде возвращения к системе Таун порталов в Третьих героях, только чрез объекты.
Как это сделать? Единственное, что пришло мне в голову - это через QuestionBox.
Вы хотите попасть в Халад? если ответ "нет", может быть, вы хотите попасть в Торост, - и тд. Городов у меня на карте много.
Значит, за объект я могу цеплять только функцию, которая содержит в себе QuestionBox. А за саму телепортацию отвечает другая функция.
Я пишу:
function Town_Portal_Tilgatal_Obelisk_F (heroname) -- это функция обелиска города Тилгатал, то есть, зацепленная за объект.
if(GetObjectOwner(heroname) == 1) then
QuestionBox("/Maps/SingleMissions/L1/Portal_Halad.txt", "Portal_HaladF", "Town_Portal_Torost_question_F"); ----вопрос: вы желаете в Халад? Если да - портуемся, если нет - предлагаем Торост.
sleep(1)
else
print("не тот герой");
end;
end;
Trigger(OBJECT_TOUCH_TRIGGER, "town_portal_Tilgatal", "Town_Portal_Tilgatal_Obelisk_F");
А вот функция самого телепорта:
function Portal_HaladF (heroname)
if(GetObjectOwner(heroname) == 1) then
SetObjectPosition(heroname, 56, 90, 0);
else
print("не тот герой");
end;
end;
Вопрос-то мне задают, но не телепортируют, а вместо этого пишут Script Error: Object "1" does not exist.
Причём, если написать во второй функции:
function Portal_HaladF (heroname)
if heroname == "Shadwyn" then
SetObjectPosition("Shadwyn", 56, 90, 0);
sleep(1);
end;
end;
То не пишут ничего, но телепорта не происходит.
А вот если вместо второй функции втупую написать:
function Portal_HaladF (heroname)
SetObjectPosition("Shadwyn", 56, 90, 0);
sleep(1);
end;
- тогда всё норм, она портуется куда надо.
Но если вместо "Shadwyn" поставить heroname, то опять пишут Script Error: Object "1" does not exist.
В чём тут может быть причина? Почему во второй функции не работает проверка на имя персонажа, или на принадлежность к первому игроку?