PILOT

Телепортация

Вопрос

Задумка такая:

Забежал в точку диаметром 2 метра, активировался файл скрипта, тебя переместило в точку указанную в файле.

Как это сделать? Что нужно написать в этом файле телепорта?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

8 ответов на этот вопрос

Вопрос решен. 

 

Добавил два сенсора

 

 

		class Item17
		{
            position[]={10926.2,0,665.869};
            a=2;
            b=2;
            activationBy="ANY";
            repeating=1;
            interruptable=1;
            age="UNKNOWN";
            text="Basis_West";
            name="Basis_West";
			expCond="(vehicle player) in thislist;";
            expActiv="if (playerSide == WEST) then { skrypt = [Basis_West,1] execVM ""custom\teleport.sqf""};";
            expDesactiv="terminate skrypt; titleText [""Телепортация завершена!"", ""PLAIN DOWN"", 3];";
            class Effects 
            {
            };
        };
				class Item18
		{
            position[]={15553.5,0,16391.9};
            a=2;
            b=2;
            activationBy="ANY";
            repeating=1;
            interruptable=1;
            age="UNKNOWN";
            text="Basis_West";
            name="Basis_West2";
			expCond="(vehicle player) in thislist;";
            expActiv="if (playerSide == WEST) then { skrypt = [Basis_West2,1] execVM ""custom\teleport.sqf""};";
            expDesactiv="terminate skrypt; titleText [""Телепортация завершена!"", ""PLAIN DOWN"", 3];";
            class Effects
            {
            };
        }; 

 

 

 

 

А в файле teleport.sqf прописано

 

 

Private ["_Basis","_var"];
_Basis = _this select 0;
_var = _this select 1;

while {true} do
  {
    waitUntil {vehicle player in list _Basis};
titleText ["Телепортация через 5 секунд.", "PLAIN DOWN", 3];
sleep 2;

if (!isDedicated) then {
        sleep 3;
		switch (_var) do 
		{
			case 1: { player setPosATL [940.657,24988.5,0.194];}; //сенсор 1
			case 2: { player setPosATL [940.657,24988.5,0.194];}; //сенсор 2
		};
};
};  

На моем сервере играет пару человек, мне не нужно ожидать от них телепортов, так как им читы не интересны.

 

 

 

 

На моем сервере играет пару человек, мне не нужно ожидать от них телепортов, так как им читы не интересны.

Изменено пользователем PILOT (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Забронировать это рекламное место


setPos

так и написать в файле или еще что-то надо? 

player setPos [1124.2561, 2910.9414, 0.002];

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделай по аналогии с админскими (донаторскими) базами. Здесь где-то на форуме есть про это тема.

Ессно, нужен триггер, запускающий скрипт и нужно предусмотреть разрешение на ТП со стороны антихака и батлы

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


_trgr_pos = [x,y,z]; //Координаты тригера

_teleport_pos = [x1,y1,z1]; //координаты куда тпшить

_trgr = createTrigger ["EmptyDetector", _trgr_pos];

_trgr setTriggerArea [2,2,0,false];

_trgr setTriggerActivation ["ANY", "PRESENT",true];

_trgr setTriggerStatements ["this", "player setPos _teleport_pos; hint 'Вы были телепортированы'; ", ""];

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

_trgr_pos = [x,y,z]; //Координаты тригера
_teleport_pos = [x1,y1,z1]; //координаты куда тпшить
_trgr = createTrigger ["EmptyDetector", _trgr_pos];
_trgr setTriggerArea [2,2,0,false];
_trgr setTriggerActivation ["ANY", "PRESENT",true];
_trgr setTriggerStatements ["this", "player setPos _teleport_pos; hint 'Вы были телепортированы'; ", ""];
 

И бан от инфистара.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну это смотря как он настроен и где подключать.

Ну тогда в mission.sqm находим класс sensor и добавляем туда новый сенсор по аналогии с указанным выше действием

Изменено пользователем JohnWayne (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну это смотря как он настроен и где подключать.

Ну тогда в mission.sqm находим класс sensor и добавляем туда новый сенсор по аналогии с указанным выше действием

Ну можно настроить только логирование.

И потом каждый рестарт, мониторить и лопатить логи на предмет телепортации...

 

Самый оптимальный вариант защиты от ТП, и при этом разрешения ТП по необходимости, это 2 скрипта на сервере -

 

1 АЧ скрипт, который банит за ТП(раз в 1\2\3 секунды проверяя расстояние между точками - прошлая точка и текущая для каждого игрока) и если игрок не в аир технике, и расстояние превышает ХХХ метров, и игрока нет в массиве разрешений на ТП - бан.

 

2 Скрипт который позволяет игроку телепортироватся - клиент шлет запрос на ТП,  скрип изменяет в массиве проверки из п.1. текущую и прошлую точки, на точку ТП, и телепортит игрока со стороны сервера.

 

А просто разрешать СетПос, прям с клиента, да еще отключая в инфистаре баны за ТП, это как то не правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас