Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
Sign in to follow this  
Mega Alex001

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

10 answers to this question

Recommended Posts

  • 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;
    };
 

Share this post


Link to post
Share on other sites



  • 0

Поддерживаю тоже интересует этот вопрос

Share this post


Link to post
Share on other sites
  • 0

Они всё равно не бьют и не агрятся, зачем от них избавляться?

Share this post


Link to post
Share on other sites
  • 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;
        };

Share this post


Link to post
Share on other sites
  • 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;
    };
 

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

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

Share this post


Link to post
Share on other sites
  • 0

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

в чем бред то?

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

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

 

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

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

Share this post


Link to post
Share on other sites
  • 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 куда ни шло...

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

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

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.