Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • Не хотите БАН?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок
  • Загляните на рынок

    Там вы можете продать или купить
    Всё что касается игровых серверов
  • 0
Mega Alex001

Как сделать чтобы на сейфзонах небыло зомби

Вопрос

Рекомендованные сообщения

  • 0

 

zombiefree.sqf

 

if (isNil "zombiefree") then {
    zombiefree = false;
};

while {zombiefree} do {
            _entity_array = (getPos player) nearEntities ["CAManBase",110];
            {
                if (_x isKindof "zZombie_Base") then {
                    deletevehicle _x;
                };
            } forEach _entity_array;
            sleep 3;
        };

 

 

Вместо этого, правильней и проще:

private ["_Zombies"];
while {true} do
    {
        _Zombies = (getPos player) nearEntities ["zZombie_Base", 50];
            {
                _x setPos [0,0,0];
            } forEach _Zombies;
        sleep 3;
    };
 

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


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


  • 0

в mission.sqm находим class sensors там триггеры на торговые города, и туда добавлеям
 

expCond="(player distance zonestary) < 100;";
expActiv="zombiefree = true; zombiefreezone = [] execVM ""scripts\zombiefree.sqf""; canbuild = false; inTraderCity = ""Stary"";";
expDesactiv="terminate zombiefreezone; TitleText[""Вы покинули торговую зону Старый"", ""PLAIN DOWN"", 3]; canbuild = true; inTraderCity = ""Any"";";

 


zombiefree.sqf
 

if (isNil "zombiefree") then {
    zombiefree = false;
};

while {zombiefree} do {
            _entity_array = (getPos player) nearEntities ["CAManBase",110];
            {
                if (_x isKindof "zZombie_Base") then {
                    deletevehicle _x;
                };
            } forEach _entity_array;
            sleep 3;
        };

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


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

 

 

zombiefree.sqf

 

if (isNil "zombiefree") then {
    zombiefree = false;
};

while {zombiefree} do {
            _entity_array = (getPos player) nearEntities ["CAManBase",110];
            {
                if (_x isKindof "zZombie_Base") then {
                    deletevehicle _x;
                };
            } forEach _entity_array;
            sleep 3;
        };

 

 

Вместо этого, правильней и проще:

private ["_Zombies"];
while {true} do
    {
        _Zombies = (getPos player) nearEntities ["zZombie_Base", 50];
            {
                _x setPos [0,0,0];
            } forEach _Zombies;
        sleep 3;
    };
 

ну а смысл крутить цикл когда никого там нету? А так они гуляют по трейду когда никого нет, пришел игрок всех удалило.

Тут уже дело каждого, кому то нравится что бы их выкидывало кому то что б убивало, мне например что б удаляло

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


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

Ты что за бред написал? Сам понял?

в чем бред то?

я думал ты имеешь ввиду вешать его не на триггер и типо тогда будет все время скрипт работать даже когда никого нет.

 _x setPos [0,0,0]; - будет тпшить зомбаков зомбаков в море, понятно если там никого нет то они просто задеспавнятся, а прикинь я такой катаюсь на катере и тут на тебе зомбаки прилетели откуда не возьмись

 

Имхо лучше удалять их

И вешать следует на триггер, зашел - активировал скрипт который раз в 3 сек удаляет зомби в радиусе пока ты там находишься, вышел - отключил скрипт

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


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

1. Я написал что на что поменять. - Это и есть скрипт триггера.

2. В твоем скрипте, лишнее:

 

if (isNil "zombiefree") then {
zombiefree = false;
}; 
 

 

Это не нужно.

 

3. Лишняя и ненужная проверка:

_entity_array = (getPos player) nearEntities ["CAManBase",110];
{
if (_x isKindof "zZombie_Base") then {
 

Ищется все равно zZombie_Base

 

4. deletevehicle _x;

Удаляет объект, со стороны клиента, включи себе отображение ошибок скриптов, и увидишь, что любой такой скрипт со стороны клиента вызывает ошибку. Хоть и работает.

 

5. Переноси не в 0,0,0 раз ты там на катере катаешся, а в 15000,15000,15000 (думаю там точно никого нет?)

 

6. Метраж 110 метров - это от границы тред зоны ЗМ будут еще на 110метров удалятся. Хорошая зона безопасности....))) стоит чел на границе трейда и получаем 330 метров в диаметре) Уж пусть будет 20-30-40 куда ни шло...

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


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

а разве спаун не на стороне клиента происходит?
ну можно и тпшить
в идеале еще передавать в скрипт thistrigger а условие активации делать (vehicle player) in thislist
а в скрипте получать _triger = _this select 0; 
и искать заедов не от координат игрока а от центра триггера (getPosATL _trigger)
и по хорошему бы еще делать проверку if (count _zombies > 0)
 

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


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

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

 

В sqm у тебя правильно написаны условия активации и деактивации. Их более чем достаточно, для работы скрипта.

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...