Анимированный хеликреш

switcher

New Member
Staff member
Анимированный хеликреш

Автор перевода: BWolf
Оригинальная тема: Animated Helicrashs 0.1 - Release

Источник: cyrq - http://opendayz.net/threads/animated-hel…ase.9084/page-6

Описание: Анимированые хеликреши, т.е. красиво взрывающиеся вертушки в воздухе над точкой спавна и также красиво падающие в оную. После взрыва антуражно рассыпанные трупики вокруг вертушки и лут. Работает примерно следующим образом: вертушка спавнится в районе моря приблизительно между каменкой и черногорском. На большой скорости летит в точку креша. Если точек много то выбирает рандомно и попадает в радиус действия триггера, взрывается в воздухе и падает в указанном радиусе.
Пример работы на видео: http://youtu.be/Ez-yWtRgdrk
Работаем с файлами которые лежат в папке - ArmA2\@dayzcc\addonsсоответственно файлы: dayz_server.pbo и dayz_server_config.hpp
в файле dayz_server.pbo находятся следующие изменяемые и добавляемые файлы:
в папке compile:
server_spawnCrashSite.sqf - добавляемыйв папке init:
server_functions.sqf - модифицируемый
в папке system:
server_monitor.sqf - модифицируемый
server_cleanup.fsm - модифицируемый
\ArmA2\MPMissions\dayz_1.chernarus - ваша папка миссии
init.sqf - модифицируемый
1. скачиваем server_spawnCrashSite.sqf
2. далее добавляем в файл dayz_server_config.hpp следующее:
Code:
// Grafzahl's Animated Heli Crashes// AnimSpawn true - Heli Crashes are spawned via server_spawnHeliCrash[/SIZE][/SIZE][/SIZE]
[SIZE=13px][SIZE=13px][SIZE=13px]// AnimSpawn false - Heli crashes are spawned via server_spawnWreck or spawn_heli depending on the settings above[/SIZE][/SIZE][/SIZE]
[SIZE=13px][SIZE=13px][SIZE=13px]// IMPORTANT: If you want to use AnimSpawn's, you must set SpawnHelis to false![/SIZE][/SIZE][/SIZE]
[SIZE=13px][SIZE=13px][SIZE=13px]#define AnimSpawn true
3. переходим к файлу server_functions.sqfи ищем строчку:
Code:
server_spawnWreck = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnWreck.sqf";
под ней вставляем:
Code:
server_spawnCrashSite = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnCrashSite.sqf";
 
4. переходим к файлу server_monitor.sqf ищем следующий код:
Code:
// Spawn crashsites and wrecks ----------------------------------------------------------------------------------------
 
        if (SpawnHelis && worldName != "namalsk") then {
        if (OldSpawn) then {
            for "_x" from 1 to SpawnHelisCount do { _id = [] spawn spawn_helis; };
            } else {
            [["UH60Wreck_DZ", "UH1Wreck_DZ"], ["Military", "HeliCrash", "MilitarySpecial"], SpawnHelisCount, (50 * 60), (15 * 60), 0.75, 'center', 4000, true, false] spawn server_spawnWreck;
            };
        };
заменяем на:
Code:
// Spawn crashsites and wrecks ----------------------------------------------------------------------------------------
 
        if (AnimSpawn) then {
            // [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire, _useStatic, _preWaypoint, _crashDamage]
            nul = [3, 4, 3000, 500, 1, 'center', 4000, true, false, false, 1, 1] spawn server_spawnCrashSite;
        };
 
        if (SpawnHelis && worldName != "namalsk") then {
        if (OldSpawn) then {
            for "_x" from 1 to SpawnHelisCount do { _id = [] spawn spawn_helis; };
            } else {
            [["UH60Wreck_DZ", "UH1Wreck_DZ"], ["Military", "HeliCrash", "MilitarySpecial"], SpawnHelisCount, (50 * 60), (15 * 60), 0.75, 'center', 4000, true, false] spawn server_spawnWreck;
            };
        };
Далее, ищем строчку в файле server_cleanup.fsm (примерно строка 38:
Code:
                init=/*%FSM<STATEINIT""">*/"//Check for hackers" \n
        " {" \n
        "    if(vehicle _x !=

Меняем строчку " if(vehicle _x != на:
Code:
"    if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"" && (vehicle _x getVariable [""Sarge"",0] != 1)) then {" \n
Последний опционально в файле init.sqf после _playerMonitor = вставляем :
Code:
"heliCrash" addPublicVariableEventHandler {
        _list = nearestObjects [_this select 1, ["CraterLong"], 100];
        {deleteVehicle _x;} foreach _list;
    };
данный код нужен для удаления кратера, дабы можно было искать спокойно лут.
 
Настройки:
осуществляются в файле server_monitor.sqf в строке:
Code:
// [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire, _useStatic, _preWaypoint, _crashDamage]
            nul = [3, 4, 3000, 500, 1, 'center', 4000, true, false, false, 1, 1] spawn server_spawnCrashSite;
Где:
Code:
 // [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire, _useStatic, _preWaypoint, _crashDamage]
nul =    [
    3,        //Number of the guaranteed Loot-Piles at the Crashside
    4,        //Number of the random Loot-Piles at the Crashside 3+(1,2,3 or 4)
    3000,    //Fixed-Time (in seconds) between each start of a new Chopper
    500,      //Random time (in seconds) added between each start of a new Chopper
    1,        //Spawnchance of the Heli (1 will spawn all possible Choppers, 0.5 only 50% of them)
    'center', //Center-Marker for the Random-Crashpoints, for Chernarus this is a point near Stary
    4000,    //Radius in Meters from the Center-Marker in which the Choppers can crash and get waypoints
    true,    //Should the spawned crashsite burn (at night) & have smoke?
    false,    //Should the flames & smoke fade after a while?
    false,    //Use the Static-Crashpoint-Function? If true, you have to add Coordinates into server_spawnCrashSite.sqf
    1,        //Amount of Random-Waypoints the Heli gets before he flys to his Point-Of-Crash (using Static-Crashpoint-Coordinates if its enabled)
    1        //Amount of Damage the Heli has to get while in-air to explode before the POC. (0.0001 = Insta-Explode when any damage//bullethit, 1 = Only Explode when completly damaged)
            ] spawn server_spawnCrashSite;
Для проверки работы надо смотреть в логах arma2oaserver_1.RPT файла, будут записи примерно такого вида:
0:18:47 "CRASHSPAWNER: UH-1H started flying from [1623.71,218.188,300] to [5043.02,2343.06] NOW!(TIME:235||LT:HeliCrash)"
0:18:47 "CRASHSPAWNER: Adding Pre-POC-Waypoint #1 on [5043.02,2343.06]"
0:20:11 "CRASHSPAWNER: UH-1H just exploded at [4927.44,2215.85,91.0971]!, "
0:20:24 "CRASHSPAWNER: Loot spawn at '[5056.41,2355.91,0]' with loot table '15.3165'"
0:20:24 "CRASHSPAWNER: Loot spawn at '[5055.35,2354.08,0]' with loot table '15.3165'"
0:20:24 "CRASHSPAWNER: Loot spawn at '[5067.18,2361.23,0]' with loot table '15.3165'"
0:20:24 "CRASHSPAWNER: Crash completed! Wreck at: [5062.18,2356.29,0] - Runtime: 98 Seconds || Distance from calculated POC: 24 meters"
0:20:24 "CRASHSPAWNER: 100% chance to start a crashing Mi17_DZ with loot table 'Military' at 693.909"
Для включения надо в файле dayz_server_config.hpp прописать в следующем виде:
Code:
#define OldSpawn true
#define AnimSpawn true
#define SpawnHelis false
Для тестирования рекомендую воспользоватся постоянными координатами которые прописываются в скачанном файле server_spawnCrashSite.sqf в строке:
Code:
_staticcoords = [[5296.064,2156.018],[4974.368,2341.02],[4656.642,2524.355]];
данные координаты соответствуют координатам летного поля в Болотах. Там можете наблюдать как крешаются вертушки.
для включения статических координат надо в файле server_monitor.sqf установить true в:
Code:
nul = [3, 4, 700, 500, 1, 'center', 4000, true, false, true, 1, 1] spawn server_spawnCrashSite;
 
у меня вот так _playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";

куда это вставлять под ним или это удалить и вставить после равно? это "heliCrash" addPublicVariableEventHandler {
_list = nearestObjects [_this select 1, ["CraterLong"], 100];
{deleteVehicle _x;} foreach _list;
};
 
вот так у меня у меня получилось! проверь правельно?
_id = player addEventHandler ["Respawn", { _id = [] spawn player_death; }];
_playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";
"heliCrash" addPublicVariableEventHandler {
_list = nearestObjects [_this select 1, ["CraterLong"], 100];
{deleteVehicle _x;} foreach _list;
};
// [] execVM "\z\addons\dayz_code\system\antihack.sqf"; //Optional Anti TP
 
ауууууууууууууу..... суда хоть кто та заходит!? :(
 
в конфигах сервера версии 1.8.0.2 совсем другой код(
да и в папке compile есть уже файл server_spawnCrashSite.sqf
+ он прописан уже в server_functions.sqf
делал уже ктонибудь под 1.8+ версии это?
 
Back
Top