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 serversDon'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



-
Similar Content
-
By 123new
В данной теме напишу простенький гайд о том, как самому на своем собственном сервере DayZ установить костомный (мой) скрипт на спавн, респавн и чистку хеликрашей.
Гайд пригодится тем, кто сам делает свою сборку сервера, либо по каким-то причинам пользуется не моей сборкой сервера (где это уже сделано), а чьей-либо еще. Обращаю ваше внимание на тот факт, что часть файлов, описанных в гайде, у вас могут уже быть вынесены в другое место или названы несколько иначе (это зависит от сборки сервера, которую вы используете, например, в сборке dankdayz вся mpmissions вынесена в отдельный файл в addons сервера), гайд основывается на чистых серверных файлах игры и отталкивается от них.
Гайд сделан для версий игры с серверной частью 0.60-0.62, но может быть совместим и с другими версиями игры, если файлы серверной части игры не поменяли своего текущего месторасположения и содержания. Гайд составлен по версии серверных файлов игры 0.62 чистой "девственной" и не правленой никем версии игры.
Напоминаю заранее, в моих серверных файлах версий 0.60, 0.61 и 0.62 из моих гайдов на данном форуме это уже сделано и делать это не нужно!!!
Нам понадобятся:
1. Notepad++ https://notepad-plus-plus.org/download/
2. Ваши серверные файлы игры
И так, приступим.
1. Первое, что нам понадобится - создать сам скрипт. Создаем по пути: "MPMissions\dayz_Auto.ChernarusPlus\" папку "scripts" , в ней папку "custom" , и в ней файл с именем "Helicarsh.sqf" . Если такие папки у вас уже имеются, просто не создавайте их, а перейдите в них. Если файл с там именем уже имеется у вас, задайте ему другое имя.
2. Вписываем в созданный файл код следующего содержания (либо скачайте его):
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
diag_log format [" SpawnHeliCrashes: Reading Settings ..."]; /* Car Spawner for DayZ Standalone v 0.60.133.913 and high versions author: 123new Install: .\mpmissions\init.sqf Add in end file: init_spawn_cars = compile preprocessFileLineNumbers "scripts\custom\SpawnCars.sqf"; Call init_spawn_cars; and place this script file in: .\mpmissions\{your mission name}\scripts\custom\Helicarsh.sqf Settings: first massives: [count loot,type loot] end massive: [type car(classname), point car, selected first massive name] */ _zombs_heli_one = 15; // Maximum count zeds in one Heli _loot_heli_one = 15; // Maximum count loot in one Heli _max_distance_spawn_zeds = 25; // Maximum distance spawn zeds in one Heli _max_distance_spawn_loot = 10; // Maximum distance spawn loot in one Heli // Types HeliCrashes _HeliTypes = [ "Land_UH1Y_Wreck" ]; // SpawnPoints HeliCrashes _HeliPointsArray = [ [5738.4302,7605.0298], [6242.1201,8368.71], [4015.1001,7971.5698], [2320.3101,10217.8], [4506.8398,12748.3], [7121.3701,9646.6699], [1667.61,5293.3398], [1700.0699,2338.8501], [3563.6899,7537.1001], [4328.02,8489.7002], [5211.0698,7763.5498], [7455.7798,11574.3], [6119.3101,6631.1099], [5941.0601,6645.27], [5016.4302,6257.9199], [4781.8999,6270.2598], [4455.9302,6181.7202], [4074.98,6222.1802], [3622.3,6415.96], [3254.45,6682.6499], [2848.0601,6815.6401], [2572.1799,6781.1499], [2298.23,6513.3999], [2313.9299,6151.0498], [2461.02,5794.4102], [2028.4399,5166.5601], [1596.27,5234.5698], [3031.3401,10225.8], [3475.28,9765], [2863.99,9639.5195], [2067.3401,9272.2002], [1603.08,9231.04], [640.487,9119.4697], [4996.7798,9156.46], [5314.1802,9310.79], [5124.4502,9496.6504], [4847.1099,9867.2598], [4603.77,10245], [4454.6001,10666.2], [4696.3501,10736.4], [4174.2002,10879.6], [3904.0601,11112.5], [3453.49,10866.1], [2627.26,10443.4], [2243.21,10726.9], [1853.38,11309.6], [1949.3101,11759.8], [4832.6699,4767.9502], [3838.1101,4944.77], [3142.3401,4426.1899], [1263.8101,4081.76], [1371.08,4505.2598], [4712.8701,5869.5498], [5405.4502,5638.77], [3235.1799,8824.7598], [5928.0698,10975.5], [4661.25,11954.4] ]; // Classnames Loot HeliCrashes _arrayItemsHeli= [ ["food_canpeaches"], ["food_cansardines"], ["ghilliehood"], ["ghilliehoodtan"], ["ghilliehoodmossy"], ["ghilliehoodwoodland"], ["ghilliebushragwoodland"], ["ghilliebushragmossy"], ["ghillietoptan"], ["ghilliesuittan"], ["ghilliesuitmossy"], ["ghillietopwoodland"], ["ghilliebushragtan"], ["ttsko_pants_beige"], ["TTsKO_Jacket_Camo"], ["Ssh68Helmet"], ["tentmedium_packed"], ["tentlarge_backpack"], ["tentcar_packed"], ["Cultivation_CannabisSeeds"], ["Cultivation_CannabisSeedsPack"], ["BagAlice_Green"], ["BagAlice_Black"], ["BagAlice_Camo"], ["Fruit_Cannabis"], ["M249"], ["M_M249Box_200Rnd"], ["Ammo_556"], ["Saiga-12K"], ["Ammo_12ga_Pellets"], ["Ammo_12ga_Slug"], ["M_Saiga_5Rn"], ["M_Saiga_8Rnd"], ["M_SaigaDrum_20Rnd"], ["AKM"], ["M4A1"], ["Ammo_556_20Rnd"], ["Ammo_357_20Rnd"], ["ammo_762x39_20rnd"], ["ammo_762x39_20rnd"], ["CLIP_762_5Rnd"], ["Ammo_12ga_Pellets"], ["M_CMAG_10Rnd"], ["clip_762x39_10rnd"], ["Optics_Binoculars"], ["Optics_Rangefinder"], ["M_STANAG_30Rnd_COUPLED"], ["M_ak101_30Rnd"], ["M_Saiga_5Rnd"], ["M_ak74_30Rnd"], ["M_Vss_10Rnd"], ["M_svd_10Rnd"], ["Winchester70_Black"], ["M_Fal_20Rnd"], ["SKS"], ["b95"], ["AK101"], ["Att_Suppressor_AK"], ["Att_Optic_PSO1"], ["Att_Handguard_AK74_Camo"], ["Att_Buttstock_AK_Wood_Camo"], ["att_bayonet_ak"], ["ammobox_556_20rnd"], ["AmmoBox_9x39_20Rnd"], ["AmmoBox_308Win_20Rnd"], ["FAL"], ["Att_Optic_PUScope"], ["AmmoBox_762_20Rnd"], ["SVD"], ["Mosin9130_Green_Black"], ["CLIP_762_5Rnd"], ["magnum"], ["m_357_speedloader"], ["fnx45"], ["m_cz75_15rnd"], ["Att_Suppressor_Pistol"], ["1911_engraved"], ["cz75"], ["Att_Optic_FNP45_MRD"], ["m_fnx45_15rnd"], ["Glock19"], ["M_Glock_15Rnd"], ["MP5K"], ["Att_Optic_Reflex"], ["Att_Optic_ACOG"], ["Att_Optic_M4T3NRDS"], ["Att_Handguard_MP5_Rail"], ["Att_Buttstock_MP5_Stock"], ["M_MP5_30Rnd"], ["UMP45"], ["shotgunmp133"], ["Ammo_12ga_Pellets"], ["Ammo_556_20Rnd"], ["Ammo_357_20Rnd"], ["CLIP_762_5Rnd"], ["clip_762x39_10rnd"], ["M_STANAG_30Rnd_COUPLED"], ["vss"], ["m_ak74_30rnd_black"], ["M_Vss_10Rnd"], ["ak74"], ["m_ak74_30rnd_black"], ["m_ak74_30rnd_black"], ["m_ak74_30rnd_black"], ["m_ak74_30rnd_black"], ["M_Vss_10Rnd"], ["M_svd_10Rnd"], ["Winchester70_Black"], ["M_Fal_20Rnd"], ["SKS"], ["b95"], ["Att_Suppressor_AK"], ["Att_Handguard_AK74"], ["Att_Buttstock_AK_Wood"], ["ammobox_556_20rnd"], ["AmmoBox_9x39_20Rnd"], ["AmmoBox_308Win_20Rnd"], ["FAL"], ["Att_Optic_PUScope"], ["AmmoBox_762_20Rnd"], ["SVD"], ["Mosin9130_Black"], ["CLIP_762_5Rnd"], ["magnum"], ["m_357_speedloader"], ["b95_black"], ["sks_black"], ["ammo_762x39_20rnd"], ["m65_jacket_black"], ["att_optic_hunting"], ["m_cmag_30rnd"], ["m_cmag_40rnd"], ["m_cmag_40rnd"], ["m_cmag_40rnd"], ["attachment_optic_acog"], ["attachment_buttstock_m4oe"], ["attachment_handguard_m4ris"], ["attachment_bayonet_m9a1"], ["attachment_optic_m4t3nrds"], ["M_UMP_25Rnd"] ]; // Zombies HeliCrashes _arrayZedHeli= [ ["ZmbM_PatrolNormal_PautRev"], ["ZmbM_PatrolNormal_Autumn"], ["ZmbM_PatrolNormal_Flat"], ["ZmbM_PatrolNormal_Summer"], ["ZmbM_SoldierNormal"] ]; _Heli = DZ_COUNT_HELICRASHES; diag_log format [" SpawnHeliCrashes: Readed Settings! Start work script!"]; diag_log format [" SpawnHeliCrashes: Cleaning old HeliCrash!"]; _tmp_count_del_heli = 0; { if ((typeOf _x) in _HeliTypes) then { deleteVehicle _x; _tmp_count_del_heli = _tmp_count_del_heli + 1; }; } forEach (allMissionObjects ""); diag_log format [" SpawnHeliCrashes: Detected and deleted %1 HeliCrash",_tmp_count_del_heli]; diag_log format [" SpawnHeliCrashes: Start spawn new HeliCrash!"]; fnc_spawnHeli = { for "ii" from 1 to _Heli do { _thisHeli = _HeliPointsArray select floor(random(count _HeliPointsArray)); _thisTypeHeli = _HeliTypes select floor(random(count _HeliTypes)); _HeliCrach = NULL; _HeliCrach = createvehicle [_thisTypeHeli, _thisHeli, [], 0, "CAN_COLLIDE"]; if !(isNull _HeliCrach) then { _selected_name_heli = (typeOf _HeliCrach); _map_pos_heli = mapGridPosition _HeliCrach; // _HeliCrach setDir floor(random 360); _originalPos = getPosATL _HeliCrach; _Damage = random 0.7; _count_spawned_loot_heli = 0; _count_spawned_zed_heli = 0; for [{_j = 0}, {_j< _loot_heli_one}, {_j = _j + 1}] do { _loot_heli = NULL; _radius_heli_loot = random _max_distance_spawn_loot; _loot_heli = createvehicle [(_arrayItemsHeli select floor(random(count _arrayItemsHeli))) select 0, _originalPos, [], _radius_heli_loot, "CAN_COLLIDE"]; if !(isNull _loot_heli) then { if ((floor(random 4)) >= 2) then { _Damage_loot = random 0.7; _loot_heli setDamage _Damage_loot; }; _count_spawned_loot_heli = _count_spawned_loot_heli + 1; }; }; for [{_k = 0}, {_k < _zombs_heli_one}, {_k = _k + 1}] do { _Zomb_heli = NULL; _radius = random _max_distance_spawn_zeds; _Zomb_heli = createAgent [(_arrayZedHeli select floor(random(count _arrayZedHeli))) select 0, _originalPos, [], _radius, "CAN_COLLIDE"]; if !(isNull _Zomb_heli) then { // _Zomb_heli setDir floor(random 360); _count_spawned_zed_heli = _count_spawned_zed_heli + 1; }; }; diag_log format [" SpawnHeliCrashes: Spawned %1 in %2 with %3 loot around Heli and %4 Zeds around Heli!",_selected_name_heli,_map_pos_heli,_count_spawned_loot_heli,_count_spawned_zed_heli]; }; }; }; if (_Heli > 0) then { call fnc_spawnHeli; }; 3. Создаем по пути: "MPMissions\dayz_Auto.ChernarusPlus\" папку "scripts" , и в ней файл с именем "compiles.sqf" . Если такая папка у вас уже имеются, просто не создавайте ее, а перейдите в нее. Если файл с там именем уже имеется у вас, то не создавайте его, а допишите информацию со следующего пункта инструкции в конец файла!
4. Вставляем в файл следующую строку:
init_spawn_Helicarshes = compile preprocessFileLineNumbers "scripts\custom\Helicarsh.sqf"; 5. Открываем по указанному далее пути файл в "Notepad++": "MPMissions\dayz_Auto.ChernarusPlus\init.sqf". Находим в файле строки с
call compile preprocessFileLineNumbers 5. Вставляем после всех "call compile preprocessFileLineNumbers" следующее:
call compile preprocessFileLineNumbers "scripts\compiles.sqf"; _Enable_SPAWNER_HELICRASHES = true; // Кастомный скрипт спавна хеликрашей (true - включить, false - выключить) DZ_COUNT_HELICRASHES = 12; // Максимальное кол-во хеликрашей при включенном кастомном скрипте их спавна 6. В этом же файле находим строки:
simulWeatherSync; dbInitEconomy [true]; setTimeForScripts 0.03; 7. Добавляем после них:
if (_Enable_SPAWNER_HELICRASHES) then { Call init_spawn_Helicarshes; }; Вот и все.
ВАЖНО:
Перед активацией скрипта отключите официальный спавнер хеликрашей сервера из официальной системы сервера игры. Инструкция есть тут:
Как вы уже догадались, первой строкой мы можем включить или отключить сам скрипт без долгого копания в коде, а второй назначить нужное количество хеликрашей на сервере.
_Enable_SPAWNER_HELICRASHES = true; // Кастомный скрипт спавна хеликрашей (true - включить, false - выключить) DZ_COUNT_HELICRASHES = 12; // Максимальное кол-во хеликрашей при включенном кастомном скрипте их спавна Все настройки по спавну хеликрашей есть в самом файле скрипта, который в п. 2 инструкции вы и создавали. Надеюсь, сложности с его настройкой не возникнет, пояснения там имеются.
-
By Sovest2
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Подготовка
Для начала нам понадобится подключить кастомный player_death.sqf в compiles.sqf
Делается это следующим образом:
В compiles.sqf заменить строку
player_death = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf"; на
player_death = compile preprocessFileLineNumbers "*ВАШ ПУТЬ*\player_death.sqf";
Если у вас стоит инфистар,то необходимо заменить строку в AH.sqf
_death = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\player_death.sqf'; на
_death = compile preprocessFileLineNumbers '*ВАШ ПУТЬ*\player_death.sqf';
В вашем кастомном player_death.sqf необходимо заменить
_array = _this; if (count _array > 0) then { _source = _array select 0; _method = _array select 1; if ((!isNull _source) && (_source != player)) then { _canHitFree = player getVariable ["freeTarget",false]; _isBandit = (player getVariable["humanity",0]) <= -2000; _punishment = _canHitFree || _isBandit; //if u are bandit || start first - player will not recieve humanity drop _humanityHit = 0; if (!_punishment) then { //i'm "not guilty" - kill me && be punished _myKills = ((player getVariable ["humanKills",0]) / 30) * 1000; _humanityHit = -(2000 - _myKills); _kills = _source getVariable ["humanKills",0]; _source setVariable ["humanKills",(_kills + 1),true]; PVDZE_send = [_source,"Humanity",[_source,_humanityHit,300]]; publicVariableServer "PVDZE_send"; } else { //i'm "guilty" - kill me as bandit _killsV = _source getVariable ["banditKills",0]; _source setVariable ["banditKills",(_killsV + 1),true]; }; }; _body setVariable ["deathType",_method,true]; }; на
_array = _this; if (count _array > 0) then { _source = _array select 0; _method = _array select 1; if ((!isNull _source) && (_source != player)) then { [player,_source]execVM "*ВАШ ПУТЬ*\humanityChange.sqf"; [player,_source]execVM "*ВАШ ПУТЬ*\kill_msg_send.sqf"; }; _body setVariable ["deathType",_method,true]; }; Отображение ника убийцы(Kill message)
Создаем файл и закидываем в миссию файл kill_msg_send.sqf
С содержанием
private ["_victim","_killer","_vehicle","_weapon","_pic"]; _victim = _this select 0; _killer = _this select 1; _killerName = name _killer; _victimName = name _victim; _vehicle = typeOf (vehicle _killer); _weapon = currentWeapon _killer; if ((getText (configFile >> "CfgVehicles" >> _vehicle >> "vehicleClass")) in ["CarW","Car","CarD","Armored","Ship","Support","Air","ArmouredW","ArmouredD","SupportWoodland_ACR","AllVehicles"]) then { _pic = gettext(configFile >> 'CfgVehicles' >> _vehicle >> 'picture'); } else { _pic = gettext(configFile >> 'cfgWeapons' >> _weapon >> 'picture'); }; _kill_txt = format ["<t align='left' size='0.5'>%1 </t>",_victimName]; _kill_txt = _kill_txt + format ["<img size='1.0' align='left' image='%1'/>",_pic]; _kill_txt = _kill_txt + format ["<t align='left' size='0.5'> %1 </t>",_killerName]; PVDZE_send = [player,"kill_message",[_kill_txt]]; publicVariableServer "PVDZE_send";
Далее,нам необходимо отредактировать файл server_sendToClient.sqf ,которой находится в директории сервера
И добавить после
case "tagFriendly": { PVDZE_plr_FriendRQ = _arraytosend; _owner publicVariableClient "PVDZE_plr_FriendRQ"; }; Это
case "kill_message": { custom_kill_message_show = _arraytosend; publicVariable "custom_kill_message_show"; }; Теперь необходимо создать файл kill_msg_show.sqf в папке с вашей миссией
с содержимым
private ["_pos","_i"]; arr_kill = ["","","","","",""]; fnc_kill_message = { private ["_finaltxt"]; _finaltxt = _this select 0; for[{_i = 0},{(_i<6)},{_i = _i +1}] do { if((arr_kill select _i) == "") then { arr_kill set [_i,_finaltxt]; [_i] execVM "*ВАШ ПУТЬ*\kill_msg_delete.sqf"; _i = count(arr_kill); }; }; }; "custom_kill_message_show" addPublicVariableEventHandler {(_this select 1) call fnc_kill_message;}; while {true} do { _pos = 0.01; _layout = 1001; { [_x,[safezoneX + 0.01 * safezoneW,2.0],[safezoneY + _pos * safezoneH,0.3],5,0.5,0,_layout] spawn BIS_fnc_dynamicText; _pos = _pos + 0.021; _layout = _layout + 1; } ForEach arr_kill; sleep 1; }; Создать файл kill_msg_delete.sqf с
private["_pos"]; _pos = _this select 0; sleep 10; arr_kill set [_pos,""];
И вставить в init.sqf после строки
_playerMonitor = [] execVM "custom\player_monitor.sqf"; строку
execVM "*ВАШ ПУТЬ*\kill_msg_show.sqf"; Осталось только добавить
custom_kill_message_show В первую строку файла publicvariable.txt
Все,отображение ника убийцы готово!
Изменение человечности за убийство Бандита\Героя
создать файл humanityChange.sqf с содержимым
private ["_victim","_killer","_myKills","_humanity","_killerHumanity","_isKillerBandit","_isBandit","_humanityHit","_kills","_killerGunner"]; _victim = _this select 0; _killer = _this select 1; _humanity = _victim getVariable["humanity",0]; _killerHumanity = _killer getVariable["humanity",0]; _isKillerBandit = (_killerHumanity) < 0 ; _isBandit = (_humanity) < 0; _humanityHit = 0; _myKills = 0; _killerVehicle = vehicle _killer; if(((!_isBandit) && _isKillerBandit) || (_isBandit && (!_isKillerBandit))) then { _myKills = round((_humanity) / 10); }; if(!_isBandit) then { _myKills = (_myKills + 200); _kills = _killer getVariable ["humanKills",0]; _killer setVariable ["humanKills",(_kills + 1),true]; } else { _myKills = (_myKills - 200); _kills = _killer getVariable ["banditKills",0]; _killer setVariable ["banditKills",(_kills + 1),true]; }; _killerGunner = gunner _killerVehicle; if(!isNil"_sourceGunner") then { _killer = _killerGunner; }; _humanityHit = _myKills * (-1); PVDZE_send = [_killer,"Humanity",[_killer,_humanityHit,300]]; publicVariableServer "PVDZE_send"; Изменение Человечности готово!
Плюсы Всего этого:
Отображение ника убийцы теперь работает всегда и корректно.(Если убивают с техники или с одного выстрела).
-
By misha123
Здравствуйте хотел добавить крафты на сервер. Но не знаю как это сделать. Кто знает как добавить крафты подскажите пожалуйста скрипт. Хочется разнообразить сервер.
Спасибо за внимание
-
By etojeflexx
Доброго времени суток, хотел узнать, как можно подключать дополнительные постройки (допустим построенный город) к основной карте, чтобы не захламлять объектами основной файл миссии?
-
By Nerve
Всем добра!
Подскажите пожалуйста, как добавить кастомных торговцев на Exile?
Использую редактор m3e_3den от Maca.
Здания есть а трейдера нет =(
Добавил вот это в initPlayerLocal
private _traders = [ ["Exile_Trader_SpecialOperations",[46.6963,1594.77,0.00111437],77.218,"Exile_Trader_SpecialOperations","WhiteHead_21"], ["Exile_Trader_SpecialOperations",[2304.91,15313.6,-0.00616455],133.922,"Exile_Trader_SpecialOperations","WhiteHead_16"], ["Exile_Trader_SpecialOperations",[3957.81,11601.5,-0.000762939],29.1087,"Exile_Trader_SpecialOperations","WhiteHead_15"], ["Exile_Trader_SpecialOperations",[11437.7,11361.8,0.00534058],267.483,"Exile_Trader_SpecialOperations","GreekHead_A3_09"], ["Exile_Trader_SpecialOperations",[6331.58,7702.21,0.00143433],286.613,"Exile_Trader_SpecialOperations","WhiteHead_10"], ["Exile_Trader_Aircraft",[11787.9,12829.8,0.00143433],113.69,"Exile_Trader_Aircraft","GreekHead_A3_09"] ]; { private _trader = [ _x select 0, _x select 4, ["HubStanding_idle1"], _x select 1, _x select 2 ] call ExileClient_object_trader_create; _trader setVariable ["ExileTraderType", _x select 3]; } forEach _traders;
-
-
Our picks
Подскажите где регулируется количество хеликрашей на сервере dayz(Hive).
Share this post
Link to post
Share on other sites