Форум HeroesWorld-а - Показать сообщение отдельно - Текущие вопросы и ответы по редактору карт
Показать сообщение отдельно
#5048
Старый 06.06.2020, 15:04
  #5048
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

FallenruВо первых для полного понимания и использования их я думаю самое то.
Во вторых карта еще не доделана)
В 3х мне кажется не в мультиплеерных картах можно намного больше скриптов(кроме арен).А напихать в мультиплеер тонну скриптов не совсем логично.
В 4-х можно сказать это вообще первая карта ,т.к до недавнего времени не создавал карты и не думал о картах вообще.
В 5-х спасибо за помощь!
И самое печальное ,что тестирование скриптов в мультиплеерной карте занимает много время и отвращения.Т.к приходится все перезапускать по 100 раз(

Добавлено через 8 минут
На будущее хотел спросить.Какая разница при создании сценария и мультиплеерной карты?(Я мельком ,что то читал...но уже не вспомню)

Добавлено через 14 минут
Эх..время потрачено,а результат не принес должного эффекта...

IsTilePassable(41, 86, 1); - возвращает 1 а) даже если герой находится на данной точно изначально б)даже если герой телепортируется в данную точку.

Добавлено через 3 минуты



Добавлено через 1 минуту
Опять придется костыль писать..неужели нельзя было сделать IsTilePassable
более функциональным
В мультиплеере можно настраивать любое количество компов, можно блокировать игроков.

IsTilePassaple проверяет проходимость клетки в целом. Да и считает она клетку непроходимой, только если она содержит blocked tile. А герой под собой blocked tile не содержит, у него висит аctive tile. Логично, что игра считает клетку проходимой.
Предлагаю вот такой код.
	firstvis=0;
function teleport(heroname, teleport)
if firstvis==0 then
 xt,yt,zt=46, 84, 1;
 SetObjectPosition(heroname, 46, 84, 1);
 MessageBoxForPlayers(GetPlayerFilter(GetCurrentPlayer()), GetMapDataPath().."successfulteleport.txt");
 x,y,z=GetObjectPosition(heroname)
 firstvis=firstvis+1;
elseif firstvis>=1 and xt,yt,zt == x,y,z then
       SetObjectPosition(heroname, x+1, y+1, 1);
       MessageBoxForPlayers(GetPlayerFilter(GetCurrentPlayer()),GetMapDataPath().."successfulteleport.txt");
       firstvis=firstvis+1;
       x,y,z=GetObjectPosition(heroname);
       xt,yt,zt=xt+1,yt+1,zt;
elseif firstvis>=1 and xt,yt,zt  x,y,z then
       SetObjectPosition(heroname, 46, 84, 1);
       MessageBoxForPlayers(GetPlayerFilter(GetCurrentPlayer()),GetMapDataPath().."successfulteleport.txt");
       firstvis=firstvis+1;
       x,y,z=GetObjectPosition(heroname);
       xt,yt,zt=46,84,1;
       firstvis=0;
end;
end;

Trigger(4, "Message", "teleport");

Объясняю принцип работы:
Проверка, что это первый заход. Если да, то 3 переменных - координаты конечной клетки телепортации, перемещаем туда текущего героя, выдаём сообщение, другие 3 переменных выставляем в координаты героя, устанавливаем переменную, гласящую о прошествии первого захода.
Если второй или больше заход, то проверяем, совпадают ли координаты конечной клетки телепортации и предыдущего телепортировавшегося героя; если да, то телепортируем второго героя на клетку право вверх от героя предыдущего, выдаём сообщение, устанавливаем счётчик заходов в 2, 3 переменных - раньше координаты конечной клетки - увеличиваем на 1, кроме этажа (zt), 3 переменных - координаты предыдущего героя - выставляем в координаты текущего героя.
Получается, если хоть сто игроков будут, телепортировавшись, вставать на месте, каждого из них просто будет вправо вверх телепортировать.
Если же координаты конечной клетки телепортации и предыдущего телепортировавшегося героя не совпадают, то телепортируем в исходную клетку, и ставим, что следующий заход снова будет первым, позволяя нашей функции работать по новой.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием