NoNameUltima

Защита баз от зомби

23 сообщения в этой теме

Кто то спрашивал скрипт, на защиту от зомби.

Вот вам мой небольшой вклад -

 

 

/*
Удаление зомби в заданом секторе
*/
if (isServer) then
    {
        private ["_sectors"];
        diag_log ( "#Ultima: Загрузка секторов защищенных от зомби." );
        _sectors =
            [
                [R,X,Y],
                [R,X,Y]
            ];
        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];
                                {
                                    //diag_log (format["#Ultima: Перемещение объекта из сектора: %1,%2. Радиусом: %3",(_pos select 0),(_pos select 1),(_radius)]);
                                    _x setPos[0,0,0];
                                } forEach _zombies;
                            sleep 10;//Пауза
                        };
                };
        } forEach _sectors;
        diag_log ( "#Ultima: Все потоки созданы." );
    };
 

Чтобы в лог выводилась информация на русском, сохраните данный код в кодировке UTF8 без BOM

Подключение в init.sqf

 [] execVM "Zombie_Protect_Sectors.sqf";

Добавление сектора -

 

_sectors =
            [
                [R,X,Y],
                [R,X,Y]
            ];

Вместо R - вписываем радиус поиска зомби от центра.

Центр задается двумя координатами X и Y

*После последнего сектора, запятая не нужна.

**sleep 10;//Пауза

-Пауза в работе скрипта - раз в 10 секунд, скрипт ищет зомби в указанном секторе. Можно увеличить, или уменьшить по желанию(не ставьте слишком низкое значение - это ни к чему, и увеличит нагрузку на сервер).

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


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


Мне такая вещь больше нравится. Без внесений координат, просто убирает зомби от 30м столба.

 

while {true} do {
  sleep 10;


  // No Zeds near Plot Poles
  _playerPos = getPos player;
  _nearPole = nearestObject [_playerPos, "Plastic_Pole_EP1_DZ"];
  if (!isNull _nearPole) then {
    _pos2 = getPos _nearPole;
    _zombies2 = _pos2 nearEntities ["zZombie_Base", dayz_poleSafeArea];
    _count2 = count _zombies2;
    for "_i" from 0 to (_count2 -1) do
    {
      _zombie2 = _zombies2 select _i;
      _zombie2 setpos [-3367.739,-120.84577,-8247.0625];
    };
  };
};

 

init.sqf

 

dayz_poleSafeArea = 30; // Default = 30m, the buildable distance
[] execVM "custom\base_SafeArea.sqf";

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


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

Еще интересная вещица: http://patriots.freeforums.org/fred-s-anti-zombie-frequency-emitter-aka-zombie-shield-t68.html

Добавить некоторого реализма, если так можно выразиться. :)

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


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

Тут как бэ вопрос в том, что в твоем примере скрипт убирает зм от всех столбов_)

 

А  если надо выборочно ставить?_)

 

Ну можно лопатить sql чтоб найти нужные столбы....

 

К тому же, это не только для баз применимо. Без привязки к объекту)

 

Ну и можно перенести координату высоты переброски зомби _) чтоб он разбивался) Типа подбрасывает))))

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

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


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

Ахаха, представляю себе зомбаков возникающих из ниоткуда и прыгающих в небо :D

А по факту заголовок темы "защита БАЗ от зомби". Так что я предложил такой вариант :)

Ну и в предпоследней версии патча еще ввели такую вещицу, как режим бога при строительстве базы.

Каждому по вкусу, в общем.

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


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

По чему "из не откуда"

 

Нене, по высоте ты не понял)

 

Ониж бегут к базе)

Просто у поднимать вверх когда добегут, метров на 10) Не перенося в другие координаты)

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


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

Что то не получается. Как правильно задавать, координаты? У меня вот так - [200,017,102]. Ориентир под Зеленогорском район 2-х амбаров V -образной формы. Должны ли при загрузке появляться сообщения? У меня ошибок не выдает, но и сообщений тоже.

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


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

Что то не получается. Как правильно задавать, координаты? У меня вот так - [200,017,102]. Ориентир под Зеленогорском район 2-х амбаров V -образной формы. Должны ли при загрузке появляться сообщения? У меня ошибок не выдает, но и сообщений тоже.

Коорды из редактора берутся. Сделай триггер, сохрани миссию и потом посмотри в файле координаты твоего триггера. Потом эти коорды в скрипт вставь.

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


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

 

Что то не получается. Как правильно задавать, координаты? У меня вот так - [200,017,102]. Ориентир под Зеленогорском район 2-х амбаров V -образной формы. Должны ли при загрузке появляться сообщения? У меня ошибок не выдает, но и сообщений тоже.

Коорды из редактора берутся. Сделай триггер, сохрани миссию и потом посмотри в файле координаты твоего триггера. Потом эти коорды в скрипт вставь.

Спасибо, понял.

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


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

А нельзя ли данный скрипт переделать так, чтобы вместо удаления зомби в данном секторе, зомби спавнились, передвигались, но не агрилились на игроков, как это сделано в примере скрипта сэйфзон?

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


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

Решил через данный скрипт убрать зомби из сейф зон.  Скрипт на сейфзону использовал Safe Zone Commander

 

Координаты вот эти.

_sectors =
[
[100,11447.91,11364.536],
[100,4064.2258,11665.938],
[100,6294.6509,7773.7847]

];

 

Собственно зомби как бегали так и бегают толпами.

 

Собственно куда копать. Может быть есть другой способ избавится от зомбей. 

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

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


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

В сторону антихака наверное.

 

Или попробуй заменить строку

_x setPos[0,0,0];

На эту

deletevehicle _x;

 

Правда тогда наверное нужен цикл for.... не уверен.

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


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

 

В сторону антихака наверное.

 

Или попробуй заменить строку

_x setPos[0,0,0];

На эту

deletevehicle _x;

 

Правда тогда наверное нужен цикл for.... не уверен.

заменил, эффект нулевой.

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


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

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

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

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

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


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

Войти

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


Войти сейчас