Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3606
Старый 15.05.2022, 20:09
  #3606
^
Марта
📖
Регистрация: 31.01.2020
Сообщения: 80
Регистрация: 31.01.2020
Сообщения: 80
По умолчанию
Re: Скрипты

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.

В чём тут может быть причина? Почему во второй функции не работает проверка на имя персонажа, или на принадлежность к первому игроку?
Марта вне форума
Ответить с цитированием