Перейти к содержимому


Фотография

Слушатель функций


Лучший Ответ SteelRat , 14 May 2014 - 20:43


но всё же хотелось предотвратить 

 

Предотвратить вы можете только запретом исполнять команду 

_unit setPos _position

Что ни в каком сценарии не приемлемо. По этому мониторинг, а если есть возможность то и отмена нежелательного эффекта, с телепортом это реализуемо. Только как и говорил коду выше нужна будет редакция , обращайтесь если что. 

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 OFFLINE   ymok

ymok

    Рядовой

  • Пользователи
  • 20 сообщений

Отправлено 11 May 2014 - 00:04

Можно ли как-то создать слушатель стандартных армовских функций, конкретный пример - читак телепортует всех в одну точку


  • 0

#2 OFFLINE   Avi

Avi

    Капитан

  • Репортеры
  • 1816 сообщений
  • Откуда:Москва

Отправлено 11 May 2014 - 14:38

Можно ли как-то создать слушатель стандартных армовских функций, конкретный пример - читак телепортует всех в одну точку

 

В фильтр баттлая можно внести списко разрешённых скриптов, насколько я знаю.


  • 0

#3 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 11 May 2014 - 20:51

Анти телепорт оригинального DayZ мода, активируете на каждом клиенте, если кто то сам или читачёк устроит телепорт, всех откинет на исходные позиции, вероятно придётся по редактировать код, пробуйте.

/*
	Anti-Teleport
	Created By Razor
	Refactored By Alby
*/

private["_curpos","_lastpos","_curheight","_lastheight","_terrainHeight","_curtime","_lasttime","_distance","_difftime","_speed","_topSpeed"];

waitUntil {vehicle player == player};

_lastpos = getPosATL (vehicle player);
_lastheight = (ATLtoASL _lastpos) select 2;
_lasttime = time;

while {alive player} do
{
	_curpos = getPosATL (vehicle player);
	_curheight = (ATLtoASL _curpos) select 2;
	_curtime = time;
	_distance = _lastpos distance _curpos;
	_difftime = (_curtime - _lasttime) max 0.001;
	_speed = _distance / _difftime;
	_topSpeed = 10;
	
	if (vehicle player != player) then {
		_topSpeed = getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed");
	};
	
	_terrainHeight = getTerrainHeightASL [_curpos select 0, _curpos select 1];
	
	//diag_log format["DEBUG: terrain: %1    current: %2", _terrainHeight, _curheight];
	//diag_log format["DEBUG: all: %1		player: %2		fall: %3		terrain: %4", !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1)), (vehicle player == player), (_curheight < _lastheight), (_curheight - _terrainHeight) > 1];
	
	_debug = getMarkerPos "respawn_west";
	if ((_speed > _topSpeed) && (alive player) && ((driver (vehicle player) == player) or (isNull (driver (vehicle player)))) && (_debug distance _lastpos > 3000) && !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1))) then {
		(vehicle player) setpos _lastpos;
		atp = [name player, dayz_characterID, _lastpos, _curPos, getPosATL player];
		publicVariableServer "atp";
	} else {

		_lastpos = _curpos;
		_lastheight = _curheight;		
	};
	
	_lasttime = _curtime;
	sleep 0.5;
};

  • 0

#4 OFFLINE   ymok

ymok

    Рядовой

  • Пользователи
  • 20 сообщений

Отправлено 14 May 2014 - 00:25

 

Анти телепорт оригинального DayZ мода, активируете на каждом клиенте, если кто то сам или читачёк устроит телепорт, всех откинет на исходные позиции, вероятно придётся по редактировать код, пробуйте.

/*
	Anti-Teleport
	Created By Razor
	Refactored By Alby
*/

private["_curpos","_lastpos","_curheight","_lastheight","_terrainHeight","_curtime","_lasttime","_distance","_difftime","_speed","_topSpeed"];

waitUntil {vehicle player == player};

_lastpos = getPosATL (vehicle player);
_lastheight = (ATLtoASL _lastpos) select 2;
_lasttime = time;

while {alive player} do
{
	_curpos = getPosATL (vehicle player);
	_curheight = (ATLtoASL _curpos) select 2;
	_curtime = time;
	_distance = _lastpos distance _curpos;
	_difftime = (_curtime - _lasttime) max 0.001;
	_speed = _distance / _difftime;
	_topSpeed = 10;
	
	if (vehicle player != player) then {
		_topSpeed = getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed");
	};
	
	_terrainHeight = getTerrainHeightASL [_curpos select 0, _curpos select 1];
	
	//diag_log format["DEBUG: terrain: %1    current: %2", _terrainHeight, _curheight];
	//diag_log format["DEBUG: all: %1		player: %2		fall: %3		terrain: %4", !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1)), (vehicle player == player), (_curheight < _lastheight), (_curheight - _terrainHeight) > 1];
	
	_debug = getMarkerPos "respawn_west";
	if ((_speed > _topSpeed) && (alive player) && ((driver (vehicle player) == player) or (isNull (driver (vehicle player)))) && (_debug distance _lastpos > 3000) && !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1))) then {
		(vehicle player) setpos _lastpos;
		atp = [name player, dayz_characterID, _lastpos, _curPos, getPosATL player];
		publicVariableServer "atp";
	} else {

		_lastpos = _curpos;
		_lastheight = _curheight;		
	};
	
	_lasttime = _curtime;
	sleep 0.5;
};

спасибо, это тоже буду использовать в проекте, но всё же хотелось предотвратить 


  • 0

#5 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 14 May 2014 - 20:43   Лучший Ответ


но всё же хотелось предотвратить 

 

Предотвратить вы можете только запретом исполнять команду 

_unit setPos _position

Что ни в каком сценарии не приемлемо. По этому мониторинг, а если есть возможность то и отмена нежелательного эффекта, с телепортом это реализуемо. Только как и говорил коду выше нужна будет редакция , обращайтесь если что. 


  • 0

#6 OFFLINE   ymok

ymok

    Рядовой

  • Пользователи
  • 20 сообщений

Отправлено 20 May 2014 - 01:43

 


но всё же хотелось предотвратить 

 

Предотвратить вы можете только запретом исполнять команду 

_unit setPos _position

Что ни в каком сценарии не приемлемо. По этому мониторинг, а если есть возможность то и отмена нежелательного эффекта, с телепортом это реализуемо. Только как и говорил коду выше нужна будет редакция , обращайтесь если что. 

 

 

спасибо, как будут вопросы сразу к вам )


  • 0




Яндекс.Метрика