Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
123new

DayZ Standalone v0.62.142963 Server Files + рабочий респавн персонажа и лута

Recommended Posts

Я выкладываю свою версию серверных файлов DayZ Standalone v 0.62.142963, слитых в инет, со своими правками, которые удалось выполнить и заставить работать.

 

Особенности:

1. Рабочая система OfflineDB сервера - private hive режим, в котором происходит полноценный запуск сервера с переспавном, сохранением всего лута, животных, зомби и других объектов (техника и хеликраши в их числе тоже)

2. Рабочий режим респавна персонажа, в котором сервер не крашится при нажатии Respawn в меню игрока.

3. Рабочий Battleye сервера (при нахождении сервера на другом компьютере (не локально)), работает также, как и в 0.60 при условии блокировки тех же данных, что и в 0.60 версии сервера. Как активировать отдельно ниже.

4. К сожалению не полнофункциональная и не лишенная багов, но рабочая система сохранения персонажа, написанная товарищем benwood, за что ему отдельное спасибо. Принцип работы все тот же. (система переписана под Enfusion 0.62 версии игры, ничего не тронуто, оставлено в оригинальном виде)

5. В наборе имеется папка с оригинальными exe сервера, приложенными с выходом сервера в сеть, а также BEC и Whitelister, работающие при включенном на сервере battleye. Настройка осуществляется аналогично серверам игр Arma, гайды по настройке их найти можно на данном форуме самим. Как активировать BEC c BattlEye есть информация отдельно ниже.

6. Включенный на сервере дебаг монитор, который отключается всего 1 строкой в конфигурации сервера

7. Сохранен весь необходимый для сервера софт, который прикладывался вместе с выходом серверных файлов в сеть официально (папка tools).

8. Палатки, бочки, машины, хеликраши респавнятся и сохраняются нормально. Сроки жизни такие же, как и в лицензионном патче игры 0.62.

9. Crack добавлен, но есть возможность запускать без него! При должных умениях можно запустить сервер и играть с лицензии.

10. За исключением exe сервера и правок в миссии сервера, сервер полностью официальный.

11. Полностью переписанная с нуля MpMission сервера на основе официальных скриптов версии 0.62, что должно исключить все непонятные баги с функционалом внутри игры.

12. Некоторый дополнительный функционал вынесен в MpMission в init.sqf, что упростит настройку сервера.

13. В MpMission добавлены мои личные самописные скрипты спавна автомобилей и хеликрашей. Рабочие, функциональные, но помните, если вы включите их, вам надо отключать официальный спавн этих объектов, иначе объекты на сервере могут прибавляться.

14. В сборке также добавлены с 07.04.2018 и вынесены в init.sqf такие возможности, как:

1) включение и отключение вывода в чат игрокам сообщений о присоединении и отсоединении от сервера игроков.

2) включение и отключение вывода в чат игрокам сообщений о смертях игроков на сервере.

3) включение и отключение системы сохранений персонажей на сервере.

4) скрипт вывода в чат сообщений о количестве игроков с возможностью его отключения.

5) скрипт вывода в чат рекламы и сообщений с возможностью его отключения (аналог BEC. работает без Battleye).

6) полностью переписанный и полнофункциональный скрипт спавна и респавна транспорта, а также хеликрашей.

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

8) выведены настройки по времени ожидания перед началом игры после соединения с сервером, при респавне и отключении, а также время между сохранением игроков на сервере в режиме "on-line".

9) выведены настройки с временем удаления мертвых игроков и зомби с карты на сервере
10) большая часть неиспользуемых скриптов mpmissions удалена.

 

Среди замеченных мною проблем:

1. Возможна нестабильность сервера, причина которой не ясна (возможно у меня не хватает знаний)

2. Миссионная команда сервера "sleep 5;" не работает в db_Load_Player.sqf  по причине того, что загрузка на сервер и спавн персонажа выполняются в асинхронном потоке, и клиент игры за определенное время должен получить в управление Agent персонажа, иначе краш. По этой причине ожидание при входе в 30 сек. имеется, но работает несколько специфично.  Возможны дюпы!

3. Присутствуют все официальные баги и проблемы лицензии с 0.62 версии игры.

4. Настройки персонажа с главного меню игры не применяются на сервере при респавне игрока! Проблема связана с невозможностью их считать от клиента игры!

5. Точки спавна игрока (работает в fnc_posBubbles.sqf) могут не соответствовать 0.62 версии, так как взяты с 0.61 версии.
6. Таблица спавна лута сервера соответствует 0.61 версии, а значит новые вещи из 0.62 версии игры на сервере отсутствуют, а удаленные в 0.62 версии вещи, но имеющиеся в таблице спавна, будут вызывать краш сервера при подборе игроком (постарался убрать таковые).

 

О том, как ставить:

1. Скачиваем серверную часть:
Mega-nz: https://mega.nz/#!TnRykAyK!G9gvmFdDKqMkDTZmAP5_r9XJTVhR-7ijgG47U9Bm84A

Yandex:disk: https://yadi.sk/d/SF1-gBw13S46z9

2. Распаковываем файлы в необходимое нам место

3. Открываем в папке сервера !Start_server_parameters.ini и правим путь в строчках:

Target = C:\Test062Server\DayZServerP69_x64.exe
StartIn = C:\Test062Server\
CommandLine = -port=2302 -config=!ConfigServer\server.cfg -cfg=!ConfigServer\basic.cfg -profiles=!ConfigServer -user=!ConfigServer -name=Server -freezecheck -autoinit
SteamClientPath = C:\Test062Server\SmartSteamEmu\SmartSteamEmu.dll
SteamClientPath64 = C:\Test062Server\SmartSteamEmu\SmartSteamEmu64.dll

на путь до вашей папки с сервером!

В пути обязательно не должно быть никаких иных символов, кроме латиницы и цифр!!! Иначе crack не запустит сервер корректно!

4. Правим там же параметры запуска сервера в строке "CommandLine ="

5. Открываем папку !ConfigServer и затем файл server.cfg правим блокнотом. Настраиваем настройки сервера (постарался оставить все пояснения в файле),

Если хотим, чтобы Battleye работал без проблем, блокируем на стороне сервера ip 109.123.198.3 в брандмауэре

6. Запускаем сервер с батничка !Start_cracked_server.cmd в папке с сервером. Если хотим лицензию, запускаем с !Start_license_server.cmd

Сервер находим в игре в фильтре серверов вручную в формате:

ip:port  (например 192.168.0.1:2302)

И подключаемся к нему!

Если у вас на сервере нет выделенного ip, либо закрыт порт сервера, то скорее всего сервер вы не найдете!

 

Информация:

Серверный exe, поставляемый и запускаемый поумолчанию с сервером игры, идет уже с отученной проверкой подписей аддонов для возможности заняться моддингом.

Клиентские exe с идут уже с отключенными проверками подписей (сигнатур) для своего моддинга.

 

Как включить BattlEye и подключить BEC:

1. Открываем !ConfigServer\server.cfg и выставляем значение BattlEye = 1;  

2. на стороне сервера блокируем в исходящих : IP: 109.123.198.3 порты: (UDP + TCP):  2324 29910 2305 8181 9660 2354

3. открываем !Other_from_server и копируем папку bec в папку !ConfigServer

4. Открываем файл scheduler.xml по пути !ConfigServer\bec\Config

5. Правим C:\Test062Server на ваш путь до папки с сервером. Можно поправить и другие объявления + время рестартов, если хотите, либо сделайте это позже.

6. Открываем файл config.cfg по пути !ConfigServer\bec\Config и меняем ip и порт сервера, если он у вас изменен от стандартно предоставленных сборкой.

Если решите переместить BEC в другое место, то не забудьте исправить параметр BePath на ваш путь, пример строки с путем есть.

7. Запускаем сервер и после "player enabled connect" в консоли сервера запускаем bec c Start_BEC.bat из папки !ConfigServer\bec

ВАЖНО: соблюдайте идентичность содержимого файлов  BEServer.cfg и BEServer_x64.cfg в !ConfigServer\BattlEye\ поскольку BEC использует лишь BEServer.cfg, а сервер BEServer_x64.cfg.

 

Клиент игры чистой версии 0.62.144.63 со Steam можно скачать тут:

Mega.nz: https://mega.nz/#!m9QhiDKB!3HizgJeHZUXgSB7Jmh2rkYlBOvstSaf-tDCsrWvx1IA

Google Drive: https://drive.google.com/file/d/1K-AxRk2fC6tADZo-SfYuVuKVFapFv7Om/view?usp=sharing
Torrent: https://yadi.sk/d/NyEdCzEx3RsGaz Ссылка на Mega с торрентом Upload 18:00-23:00 GMT+3

Со всех этих файлов вы можете зайти на данный сервер игры! Для входа вам понадобится Crack, он ниже!

 

Crack SmartSteamEmu для клиента игры (настройка такая же, как и для сервера):
https://yadi.sk/d/LVe_rCgO3GuWJk

 

Замеченные наблюдения в сфере DayZ новых версий:

Поскольку разработчик игры вырезал весь функционал создания внутриигровых меню со старых версий DayZ и Arma, я заметил, что эта возможность не вырезана полностью, а ВНИМАНИЕ переписывается ими на новый язык enfusion. А это значит, что средствами enfusion возможно реализовать внутриигровую админ-меню, но для этого нужны немалые знания в этом языке. У меня этих знаний нет! НО! в папке сервера есть такая папочка scripts - это скрипты на Enfiusion. Попробуйте покопаться в нем и вы найдете массу интересного! Язык крайне похож на c++, но отличается! там же имеется кривая малоинформаитивная справка по нему.

 

Благодарности:

MikeJones за серверные файлы версии 0.62 и exe сервера с возможностью нормального респавна игрока в dboffline.
Benwood за рабочую систему сохранения и загрузки персонажа.
BorizzK за работу над некоторыми скриптами миссии сервера, советы и тесты.
Всем форумчанам и комьюнити за тесты, отзывы и использование моих наработок с сохранением авторства файлов и статьи.

 

P.S. Я не эксперт в DayZ, и мало что знаю. надеюсь, в чем-то я смог вам помочь! Не ругайте сильно, если что не так! Рассчитываю на вашу взаимопомощь друг другу, а не на конкуренцию и тайны друг от друга, т.к. только взаимопомощью мы сможем добиться желаемого результата!

P.P.S. Советую вам не удалять после скачивания файлы, поскольку ссылки в темах имеют свойство умирать!

 

Не забываем про благодарность за информацию ;)

 

P.S. При копировании информации и файлов на другие источники, пожалуйста, указывайте авторство статьи и файлов! Спасибо!

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites







v0.62.142963 - версия сервера, а клиент v0.62.144063. При подключении к серверу пишет, что сервер не той версии. Что делать?

Share this post


Link to post
Share on other sites

mashstroy выставить

requiredBuild = 1; // require min build game for connect
allowedBuild = 1; // allowed max build game for connect
forceSameBuild = 0;  //if 1 only build server, if 0 all builds (work if requiredBuild and allowedBuild commented)

в server.cfg сервера

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

Чёт в торренте клиент скачать не могу... Раздачи нету

Share this post


Link to post
Share on other sites

Доброго времени, подскажите, есть ли в этой сборке возможность пофиксить "время жизни" мертвых зомби? На данный момент зомби после убийства лежит вплоть до рестарта сервера. С трупами игроков не проверял, но как мне кажется, будет тоже самое.

Share this post


Link to post
Share on other sites

STORMWAY пофиксить возможность есть всегда, надо немножечко подумать и чуть-чуть ручек.

пример:

1. открываем с pbo manager в папке сервера из Addons файлик server_data.pbo

2. Открываем папку scripts и что мы видим? Верно, скриптики.

Если сравните с папкой scripts в вашей mpmissions то будет очень похожая структура, но в разы меньше файлов и папок.

Вы верно подумали, это именно те же самые скрипты с пбо, но подправленные. А не все потому, что мы не все правили и вынесли лишь нужное нам.

3. Открываем из открытого в п. 1 следующий путь: scripts\events

и находим файл event_killedZombie.sqf

4. Копируем этот файл в такую же папку в MpMission, чтобы получилось:

scripts\events\event_killedZombie.sqf

5. Половина дела сделано. Если изучить оригинальный init.sqf в папке из п. 1, вы заметите, что событие event_killedZombie не вписано в игре вообще. хотя в некоторых скриптах вызывается.

Открываем наш init.sqf в MpMission и вписываем туда:

event_killedZombie =		compile preprocessFileLineNumbers "scripts\events\event_killedZombie.sqf";

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

6. Дело за малым. Открыть сам файл event_killedZombie.sqf и подправить удаление трупа зомби и переспавн его.
Добавлю сразу, событие смерти зомби уже должно поумолчанию в игре вызываться, так что править более ничего не надо. О том как оно прикрепляется для объекта "зомби" можно поглядеть в "scripts\init\spawnZombies.sqf"  (это скрипт процедуры call init_spawnZombies; в init миссии)

 

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

 

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

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

123new Большое спасибо! Как-то даже и не подумал покопать в pbo файлах.

Share this post


Link to post
Share on other sites

123new перепробовал все.. зомби так и лежат пока рестарт не сделаешь.

Share this post


Link to post
Share on other sites

STORMWAY в конце файла event_killedZombie.sqf (того что в mpmission вынес) добавь:

uiSleep 600;
deleteVehicle _agent;

где первая строка - ожидание в секундах (600 секунд), а вторая строка - удаление трупа игрока.

 

Share this post


Link to post
Share on other sites
3 часа назад, 123new сказал:

STORMWAY в конце файла event_killedZombie.sqf (того что в mpmission вынес) добавь:


uiSleep 600;
deleteVehicle _agent;

где первая строка - ожидание в секундах (600 секунд), а вторая строка - удаление трупа игрока.

 

 

Этим способом пробовал. Не работает.)

Share this post


Link to post
Share on other sites
Скрытый текст

 

private["_agent","_uid"];
_agent = _this select 0;
_killer = _this select 1;

//dbStats ["kill",_killer,1];

_type = typeOf _agent;
_last_pos = getPosATL _agent;

//cleanup
_respawn_delay = 300 + floor(random(120));

diag_log format ["ZOMBIE:: %1 DIED at %2, respawn after %3 seconds, timestamp %4",_type, _last_pos, _cleanup_delay, time];

sleep _respawn_delay;

_Z_spawnparams = [
  1 / 25.0,     // SPN_gridDensity
  400.0,        // SPN_gridWidth
  400.0,        // SPN_gridHeight
   4.0,         // SPN_minDist2Water
  20.0,         // SPN_maxDist2Water
   0.5,         // SPN_minDist2Static
  30.0,         // SPN_maxDist2Static
  -0.785398163, // SPN_minSteepness
  +0.785398163, // SPN_maxSteepness
  50.0,         // SPN_minDist2Zombie
 170.0,         // SPN_maxDist2Zombie
 125.0,         // SPN_minDist2Player
 270.0          // SPN_maxDist2Player
];

uisleep 300;
deletevehicle _agent;

_pos = RespawnDeadNPC [ _last_pos, _Z_spawnparams ];

_types = getArray( configFile >> "CfgSpawns" >> "types");
_rnd = floor(random(count _types));


_zombie = createAgent [_types select _rnd, _pos, [], 1, "NONE"];
_zombie addeventhandler ["HandleDamage",{_this call event_hitZombie} ];
_zombie setDir floor(random 360);

diag_log format ["ZOMBIE:: %1 spawned at %2, distance from original spot %3",_zombie, _pos, (_pos distance _last_pos)];

 

123new Вот содержимое файла, в init.sqf все прописано, пробовал так же дописывать: call event_killedZombie; результат тот-же.

Share this post


Link to post
Share on other sites

STORMWAY так а зомби у вас как создаются? Скриптом с комманды call init_spawnZombies; или динамический спавн на игрока?

Потому как это 2 разных типа зомби, и обрабатываются они сервером по разному.

 

Например, рассмотрим комманду call init_spawnZombies;  При  ее использовании событие задается скриптом scripts\init\spawnZombies.sqf

Это обозначено в вашем init.sqf строкой:

init_spawnZombies = 	compile preprocessFileLineNumbers "\dz\server\scripts\init\spawnZombies.sqf";

Переносим файл spawnZombies.sqf с addons сервера из pbo в mpmission сервера вашего.

Например, кладем его в scripts\init\spawnZombies.sqf

И правим в init.sqf строку на такую

init_spawnZombies = 	compile preprocessFileLineNumbers "scripts\init\spawnZombies.sqf";

Затем открываем сам скрипт spawnZombies.sqf

как видим, в скрипте спавн зомби обозначен коммандой

fnc_spawnZombie = 
{
	DZ_TotalZombies = DZ_TotalZombies + 1;
	_zombie = createAgent [_this select 0, _this select 1,[],0,"CAN_COLLIDE"];
	_zombie addeventhandler ["HandleDamage",{_this call event_hitZombie} ];
	_zombie addeventhandler ["killed",{null = _this spawn event_killedZombie} ];
	_zombie setDir floor(random 360);
	_zombie
};

Хотя если в init.sqf вы поищете комманду event_killedZombie то ее вы не найдете.

Т.е. в случае убийства зомби ничего не произойдет.

Чтобы произошло что-то его надо поместить также из pbo сервера в миссию сервера например по пути scripts\events\event_killedZombie.sqf

И еще в init обозначить функцией. Вот так:

event_killedZombie = 	compile preprocessFileLineNumbers "scripts\events\event_killedZombie.sqf";

А теперь откройте scripts\events\event_killedZombie.sqf и смотрите:

Строка

sleep _respawn_delay;

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

Строка

_pos = RespawnDeadNPC [ _last_pos, _Z_spawnparams ];

Это готовая процедура удаления умершего нпс зомби.

Можно после нее добавить:

deleteVehicle _agent;

И соответственно смотрите в файле далее процедуру создания зомби

_zombie = createAgent [_types select _rnd, _pos, [], 1, "NONE"];
_zombie addeventhandler ["HandleDamage",{_this call event_hitZombie} ];
_zombie setDir floor(random 360);

Сравните ее с тем, что вы видели в spawnZombies.sqf

Видите разницу? Отсутствует

	_zombie addeventhandler ["killed",{null = _this spawn event_killedZombie} ];

Так что после

_zombie addeventhandler ["HandleDamage",{_this call event_hitZombie} ];

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

 

 

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

123new За это спасибо, сейчас попробую!

И кстати, заметил еще один косячек, в этой сборке, при перезаходе / рестарте сервера тасуется инвентарь, и пропадают рандомные предметы.)

Share this post


Link to post
Share on other sites

STORMWAY это недостаток системы сохранений персонажа сторонней еще с 0.60 патчей игры (от benwood), использовать пришлось такую за неимением возможности официальную использовать. К сожалению, мне не исправить это, поскольку для исправления этого надо крайне сильно попотеть, и составлять для каждого id classname информацию по количеству занимаемых слотов в инвентаре.

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

123new Я использую систему сохранения как раз таки от benwood которую он недавно выложиил на соседнем борде

Share this post


Link to post
Share on other sites

STORMWAY более чем уверен, там также это не решено, поскольку система работает визуально по тем же методам, а значит не вмещающиеся в инвентарь вещи попросту игра не добавит.

Его последний вариант системы сохранений не вижу смысла копировать и вставлять в имеющеюся мою сборку, поскольку разницы там никакой нет, а вот неразберихи в виде каши из enscript и sqf в миссии сервера хватает, и людям, знающим арму переходить на такой вариант работы с сервером будет более проблемно.

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

123new Последний вариант так же не помог, зомби все так же остаются лежать до рестарта.

Попробую покапать файлы клиента игры, может получится.

Share this post


Link to post
Share on other sites

123new А и еще, не подскажите, на кастомных хеликах ваших имеются “невидимые стены”, т.е. к нему подобраться очень и очень сложно. Может это как то зависеть от их кардинат спавна? модели оригинальные, а невидимые стены есть, а в кардинатах разница есть, в числах, т.е. в оригинале например 5765.23 а в скрипте 5765.2342 это как пример, точных кардинат нету, уже не у пк нахожусь

Share this post


Link to post
Share on other sites

STORMWAY в скрипте спавна хеликраша найдите и закомментируйте следующие строки

_HeliCrach setDir floor(random 360);

_Zomb_heli setDir floor(random 360);

это возникает из-за разницы в синхронизации данных между сервером и клиентом игры, сервер считает что хеликраш в одном положении, а для клиента он развернут. Отсюда и вытекает такое как невидимые стены и проход сквозь текстуры хелика.

 

А по поводу зомби - зомби то как спавнятся у вас вообще? на игрока динамически? Если да, то этот спавнер редактировать можно лишь в в файлах папки db (файл globals.xml насколько помню, benwood говорил)

И не забываем также и про то, что данные по этим настройкам скорее всего в storage сохраняются и оттуда уже читаются при следующих рестартах сервера.

Если call init_spawnZombies;  раскомментирована в ините миссии сервера, то спавн скриптовый работает и написанное выше просто не может не работать. Но не забываем, что зомби в 61 патче и выше также и на игрока спавнятся, а значит можно их перепутать со скриптовыми.

Share this post


Link to post
Share on other sites

123new спавн у меня через call init_spawnZombies; 

 

В globals.xml :
 

Скрытый текст

<variables>
    <var name="CleanupAvoidance" type="i" value="50"/>
    <var name="CleanupLifetimeDefault" type="i" value="30"/>
    <var name="CleanupLifetimeLimit" type="i" value="30"/>
    <var name="ZoneSpawnDist" type="i" value="0"/>
    <var name="RespawnAttempt" type="i" value="3"/>
    <var name="RespawnLimit" type="i" value="20"/>
    <var name="RespawnTypes" type="i" value="10"/>
    <var name="SpawnInitial" type="i" value="1500"/>
    <var name="ZombieMaxCount" type="i" value="2500"/>
</variables>

 

А насчет еще кстати, в init мы прописываем call event_killedZombie; или не обязательно?

 

Share this post


Link to post
Share on other sites

STORMWAY в MPMissions\dayz_Auto.ChernarusPlus\init.sqf

только

call init_spawnZombies;

а вот в  MPMissions\dayz_Auto.ChernarusPlus\scripts\init.sqf  уже

event_killedZombie = 	compile preprocessFileLineNumbers "scripts\events\event_killedZombie.sqf";
init_spawnZombies = 	compile preprocessFileLineNumbers "scripts\init\spawnZombies.sqf";

А само событие event_killedZombie вы вызываете непосредственно в теле скриптов этих строкой

_zombie addeventhandler ["killed",{null = _this spawn event_killedZombie} ];

если дословно эту строку перевести, получится:

Цитата

объекту присвоить действие в случае возникновение события "умер", присваиваемое действие в случае выполнения события: выполнить функцию event_killedZombie

 

Так что в MPMissions\dayz_Auto.ChernarusPlus\init.sqf вызывать call event_killedZombie; не нужно, это ошибка.

Как вариант, для теста, можете отключить спавн динамических зомби, заменив events.xml в папке db с вашей mpmissions на этот 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

, затем удалить  папку storage полностью и запустить сервер

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

123new В общем, по вашему методу зомби так же не пропадают. Но, товарищ benwood поделился "своим скриптом" Прикладываю:

 

Скрытый текст

private["_agent","_uid"];
_agent = _this select 0;
_killer = _this select 1;

_cleanup_delay = 60; 

null = [_agent, _cleanup_delay ] spawn {
    sleep (_this select 1);
    deletevehicle (_this select 0); 
};


_type = typeOf _agent;
_last_pos = getPosATL _agent;

//cleanup
_respawn_delay = 300 + floor(random(120));


diag_log format ["ZOMBIE:: %1 DIED at %2, respawn after %3 seconds, timestamp %4",_type, _last_pos, _cleanup_delay, time];

sleep _respawn_delay;

_Z_spawnparams = [
  1 / 25.0,     // SPN_gridDensity
  400.0,        // SPN_gridWidth
  400.0,        // SPN_gridHeight
   4.0,         // SPN_minDist2Water
  20.0,         // SPN_maxDist2Water
   0.5,         // SPN_minDist2Static
  30.0,         // SPN_maxDist2Static
  -0.785398163, // SPN_minSteepness
  +0.785398163, // SPN_maxSteepness
  50.0,         // SPN_minDist2Zombie
 170.0,         // SPN_maxDist2Zombie
 125.0,         // SPN_minDist2Player
 270.0          // SPN_maxDist2Player
];

_pos = RespawnDeadNPC [ _last_pos, _Z_spawnparams ];

_types = getArray( configFile >> "CfgSpawns" >> "types");
_rnd = floor(random(count _types));

_zombie = createAgent [_types select _rnd, _pos, [], 1, "NONE"];
_zombie addeventhandler ["HandleDamage",{_this call event_hitZombie} ];
_zombie setDir floor(random 360);

diag_log format ["ZOMBIE:: %1 spawned at %2, distance from original spot %3",_zombie, _pos, (_pos distance _last_pos)]; 

 

Тут _cleanup_delay = 60; время удаления трупа в сек.

С этим содержимым удаление трупа происходит, и переспавн работает.

 

123new Все же, огромное спасибо вам за помощь. Насчет хеликрашей сейчас буду проверять.

Edited by STORMWAY (see edit history)

Share this post


Link to post
Share on other sites

123new В общем, закомментировал строки:

Скрытый текст

 

_HeliCrach setDir floor(random 360);

_Zomb_heli setDir floor(random 360);

 

 

В итоге совсем пропали вертолеты =)

Возвращаю все как было - вертолеты появляются, но так же забагованные. Очень странно.

 

UPD. Помогла замена скрипта на этот:

Скрытый текст

 

_RandomPos = [true, true, true, true, true, true]; // random false or true

_types = getArray( configFile >> "CfgSpawns" >> "types");
_nn=0;
while {DZ_MAX_HELICRASH > _nn} do
{    
    for "ii" from 0 to DZ_MAX_HELICRASH -1 do
    {
        _SelRand = _RandomPos select floor random count _RandomPos;
        diag_log format["ATIVO: %1 ",_SelRand];
        if _SelRand then
        {
            _nn = _nn + 1;
            _randomHeliCrash = _modelHeliCrash select floor random count _modelHeliCrash;
            _PointAndNapr = _pointSpawnHeli select floor ii;
            _Point =  _PointAndNapr select 0;
            _Napr = _PointAndNapr select 1;
            
            _NextHeliCrash = createVehicle [_randomHeliCrash, _Point, [], 0, "CAN_COLLIDE"];
            //_NextHeliCrash setDir floor(random 360);
            _NextHeliCrash setVariable ["fire",true];
            _NextHeliCrash synchronizeVariable ["fire",1,{_this call event_fnc_wreckSmoke}];
            _sound = createSoundSource["Sound_Fire",_Point,[],0];
            
            diag_log format["BACON SPAWNED HELICRASH %2 pos: %1",_Point,_randomHeliCrash];
                            
            _totalSpawns = 10 + random 6;
            for "l" from 0 to _totalSpawns do
            {
                _itemLoot = _LootHeliCrash select floor random count _LootHeliCrash;
                _item = _itemLoot select 0;
                _qty = _itemLoot select 1;
                _rndLoot = createVehicle [_item, _Point, [], 10, "CAN_COLLIDE"];
                _rndLoot setVariable ["quantity", _qty];
                diag_log format["SPAWN LOOT HELICRASH: %1 at %2",_item,_Point];
            };
            
            _totalZombies = 10 + random 5;
            for "z" from 0 to _totalZombies do
            {
                _rnd = floor(random(count _types));
                _zombie = createAgent [_types select _rnd, _Point, [], 10, "NONE"];
                _zombie addeventhandler ["HandleDamage",{_this call event_hitZombie} ];
                _zombie addeventhandler ["killed",{null = _this spawn event_killedZombie} ];
                //_zombie setDir floor(random 360);
                diag_log format["SPAWN ZOMBIE HELICRASH: %1 at %2",DZ_ZombieTypes select _rnd,_Point];
            };
        };
    };
};

diag_log format["SPAWN HELICRASHS: %1",_nn];

 

 

Edited by STORMWAY (see edit history)

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

×
×
  • 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.