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

DustBlue IPB Skin by CodeGame Networks

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

#1 NoNameUltima

NoNameUltima

    Администратор

  • Администраторы
  • 191 сообщений
  • ГородСанкт-Петербург

Отправлено 13 октября 2014 - 17:51

*Данный скрипт можно запустить на сервере, или на клиенте.
Если скрипт запущен на сервере, то зомби будут удалятся только при попытке нанести удар игроку. т.к. все зомби создаются клиентами, и до момента атаки, для сервера они не существуют.
  • Создайте файл: sectors_clear_zombies.sqf
  • Вставьте в него следующий код:
private ["_sectors"];
diag_log ( "#Ultima: Загрузка секторов защищенных от зомби." );
_sectors =
	[
		[R,X,Y]
		,[R1,X1,Y1]
	];
diag_log ( "#Ultima: Сектора загружены. Идет создание потоков..." );
	{
		[_x] spawn
			{
				private ["_pos","_radius","_zombies","_sector"];
				_sector = (_this select 0);
				//diag_log (format["#Ultima: Создан поток сектора: %1,%2. Радиусом: %3",(_sector select 1),(_sector select 2),(_sector select 0)]);
				_radius = (_sector select 0);
				_pos = [(_sector select 1),(_sector select 2),0];
				while { true } do
					{
						//diag_log (format["#Ultima: Отработка цикла WHILE сектора: %1,%2. Радиусом: %3",(_pos select 0),(_pos select 1),(_radius)]);
						_zombies = _pos nearEntities ["zZombie_Base",_radius];
							{_x setPos[0,0,0];} forEach _zombies;
						sleep 10;//Пауза
					};
			};
	} forEach _sectors;
diag_log ( "#Ultima: Все потоки созданы." );

*Вместо R, X, Y впишите, радиус в котором будут удалятся зомби, и координаты X, Y - центр данного радиуса.
Можете добавлять еще точки, с радиусами, через запятую(в примере это R1, X1, Y1).

Если Вы хотите переделать данный скрипт для сервера, - добавьте в самый верх:
if (isServer) then
{
И добавьте в самый низ:
 };


Подключение для клиента:
  • Поместите созданный Вами файл: sectors_clear_zombies.sqf, в папку Вашей миссии.
  • Откройте файл Вашей миссии: init.sqf
  • В самый низ файла добавьте:
[] execVM "sectors_clear_zombies.sqf";

Подключение для сервера:
  • На сервере, откройте папку Вашей миссии, и поместите туда созданный Вами файл: sectors_clear_zombies.sqf
  • Откройте файл mission.sqf
  • В самый низ добавьте
[] execVM "sectors_clear_zombies.sqf";


#2 NoNameUltima

NoNameUltima

    Администратор

  • Администраторы
  • 191 сообщений
  • ГородСанкт-Петербург

Отправлено 16 января 2016 - 16:47

Тот же самый скрипт, в другом написании:
diag_log ( "[#Ultima]: Защита секторов от зомби." );
private ["_sectors", "_zombies"];
_sectors =
		[
			[R,X,Y]
			,[R1,X1,Y1]
		];
while {true} do
	{
		{
			_zombies	=	[(_x select 1), (_x select 2), 0] nearEntities ["zZombie_Base", (_x select 0)];
			{_x setPos [0, 0, 0];} forEach _zombies;
		} forEach _sectors;
		sleep 10;
	};

P.S.
Вы можете удалять зомби, а не телепортировать их, заменив данную строку:
_x setPos[0, 0, 0];
на эту(как в верхнем варианте скрипта, так и в данном):
(deleteVehicle _x);






Темы с аналогичным тегами zombie protect, защита от зомби, удаление зомби на базах, dayz, epoch, arma2, arma ii, удаление зомби в координатах, сектора свободные от зомби

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных