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
  • 0
XdubHaosX

ESS - Enhanced Spawn Selection

3 answers to this question

Recommended Posts

  • 0

Ребята помоги перевести с установкой ESS, уже 3 раза делал и не робит

Вот по этой интр http://opendayz.net/threads/release-ess-enhanced-spawn-selection.19998/

У меня epoch + overwath napf

В init пишешь в самый низ 

waitUntil {!isNil "PVDZE_plr_LoginRecord"};
if (!isDedicated && (dayzPlayerLogin2 select 2)) then {execVM "spawn\spawn.sqf";};

дальше в init ищешь 

 

dayz_paraSpawn = false;

и сразу под ним пишешь 

dayz_spawnselection = 0;

в description.ext в самый низ 

 

#include "spawn\defines.hpp"
#include "spawn\class.hpp"
#include "spawn\halo.hpp"
#include "spawn\spawn.hpp"

папку spawn кидаешь в папку миссии  (берешь себе из ESS-master\Epoch 1.0.5.1\Napf)

 

идешь в папку dayz_server \ init \  открываешь server_functions и ищешь 

 

dayz_recordLogin = {
   private["_key"];
   _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
   _key call server_hiveWrite;
};


сразу под ним вставляешь
 
#include "ESSconfig.sqf"

В нижней части server_functions.sqf добавить следующую строку:

execVM "\z\addons\dayz_server\init\ESSfloor.sqf";

Теперь положи ESSconfig.sqf и ESSfloor.sqf в dayz_server\init\ 

 

В dayz_server\compile\server_playerSetup.sqf  найти етот весь блок 

 

 

if (_randomSpot) then {
        private["_counter","_position","_isNear","_isZero","_mkr"];
        if (!isDedicated) then {
                endLoadingScreen;
        };
       
        //Spawn modify via mission init.sqf
        if(isnil "spawnArea") then {
                spawnArea = 1500;
        };
        if(isnil "spawnShoremode") then {
                spawnShoremode = 1;
        };
       
        //
        _spawnMC = actualSpawnMarkerCount;
 
        //spawn into random
        _findSpot = true;
        _mkr = "";
        while {_findSpot} do {
                _counter = 0;
                while {_counter < 20 && _findSpot} do {
                        // switched to floor
                        _mkr = "spawn" + str(floor(random _spawnMC));
                        _position = ([(getMarkerPos _mkr),0,spawnArea,10,0,2000,spawnShoremode] call BIS_fnc_findSafePos);
                        _isNear = count (_position nearEntities ["Man",100]) == 0;
                        _isZero = ((_position select 0) == 0) && ((_position select 1) == 0);
                        //Island Check          //TeeChange
                        _pos            = _position;
                        _isIsland       = false;                //Can be set to true during the Check
                        for [{_w=0},{_w<=150},{_w=_w+2}] do {
                                _pos = [(_pos select 0),((_pos select 1) + _w),(_pos select 2)];
                                if(surfaceisWater _pos) exitWith {
                                        _isIsland = true;
                                };
                        };
                       
                        if ((_isNear && !_isZero) || _isIsland) then {_findSpot = false};
                        _counter = _counter + 1;
                };
        };
        _isZero = ((_position select 0) == 0) && ((_position select 1) == 0);
        _position = [_position select 0,_position select 1,0];
        if (!_isZero) then {
                //_playerObj setPosATL _position;
                _worldspace = [0,_position];
        };
}; 

 

 

 

 

и заменить на 

 

if (_randomSpot) then {
   if (!isDedicated) then {endLoadingScreen;};
   _debug = getMarkerpos "respawn_west";
   _worldspace = [0,[_debug select 0,_debug select 1,0.3]];
};

Тут же в етом файле найти 

dayzPlayerLogin2 = [_worldspace,_state];

и заменить на 

dayzPlayerLogin2 = [_worldspace,_state,_randomSpot];


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

Edited by Bandit3 (see edit history)

Share this post


Link to post
Share on other sites







  • 0

В init пишешь в самый низ 

waitUntil {!isNil "PVDZE_plr_LoginRecord"};
if (!isDedicated && (dayzPlayerLogin2 select 2)) then {execVM "spawn\spawn.sqf";};

дальше в init ищешь 

 

dayz_paraSpawn = false;

и сразу под ним пишешь 

dayz_spawnselection = 0;

в description.ext в самый низ 

 

#include "spawn\defines.hpp"
#include "spawn\class.hpp"
#include "spawn\halo.hpp"
#include "spawn\spawn.hpp"

папку spawn кидаешь в папку миссии  (берешь себе из ESS-master\Epoch 1.0.5.1\Napf)

 

идешь в папку dayz_server \ init \  открываешь server_functions и ищешь 

 

dayz_recordLogin = {
   private["_key"];
   _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
   _key call server_hiveWrite;
};


сразу под ним вставляешь
 
#include "ESSconfig.sqf"

В нижней части server_functions.sqf добавить следующую строку:

execVM "\z\addons\dayz_server\init\ESSfloor.sqf";

Теперь положи ESSconfig.sqf и ESSfloor.sqf в dayz_server\init\ 

 

В dayz_server\compile\server_playerSetup.sqf  найти етот весь блок 

 

 

if (_randomSpot) then {
        private["_counter","_position","_isNear","_isZero","_mkr"];
        if (!isDedicated) then {
                endLoadingScreen;
        };
       
        //Spawn modify via mission init.sqf
        if(isnil "spawnArea") then {
                spawnArea = 1500;
        };
        if(isnil "spawnShoremode") then {
                spawnShoremode = 1;
        };
       
        //
        _spawnMC = actualSpawnMarkerCount;
 
        //spawn into random
        _findSpot = true;
        _mkr = "";
        while {_findSpot} do {
                _counter = 0;
                while {_counter < 20 && _findSpot} do {
                        // switched to floor
                        _mkr = "spawn" + str(floor(random _spawnMC));
                        _position = ([(getMarkerPos _mkr),0,spawnArea,10,0,2000,spawnShoremode] call BIS_fnc_findSafePos);
                        _isNear = count (_position nearEntities ["Man",100]) == 0;
                        _isZero = ((_position select 0) == 0) && ((_position select 1) == 0);
                        //Island Check          //TeeChange
                        _pos            = _position;
                        _isIsland       = false;                //Can be set to true during the Check
                        for [{_w=0},{_w<=150},{_w=_w+2}] do {
                                _pos = [(_pos select 0),((_pos select 1) + _w),(_pos select 2)];
                                if(surfaceisWater _pos) exitWith {
                                        _isIsland = true;
                                };
                        };
                       
                        if ((_isNear && !_isZero) || _isIsland) then {_findSpot = false};
                        _counter = _counter + 1;
                };
        };
        _isZero = ((_position select 0) == 0) && ((_position select 1) == 0);
        _position = [_position select 0,_position select 1,0];
        if (!_isZero) then {
                //_playerObj setPosATL _position;
                _worldspace = [0,_position];
        };
}; 

 

 

 

 

и заменить на 

 

if (_randomSpot) then {
   if (!isDedicated) then {endLoadingScreen;};
   _debug = getMarkerpos "respawn_west";
   _worldspace = [0,[_debug select 0,_debug select 1,0.3]];
};

Тут же в етом файле найти 

dayzPlayerLogin2 = [_worldspace,_state];

и заменить на 

dayzPlayerLogin2 = [_worldspace,_state,_randomSpot];


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

Спасибо, просто меня путало в инструкции разделение на epoch и overwath не знал как делать и как быть

Share this post


Link to post
Share on other sites
  • 0

В init пишешь в самый низ 

waitUntil {!isNil "PVDZE_plr_LoginRecord"};
if (!isDedicated && (dayzPlayerLogin2 select 2)) then {execVM "spawn\spawn.sqf";};

дальше в init ищешь 

 

dayz_paraSpawn = false;

и сразу под ним пишешь 

dayz_spawnselection = 0;

в description.ext в самый низ 

 

#include "spawn\defines.hpp"
#include "spawn\class.hpp"
#include "spawn\halo.hpp"
#include "spawn\spawn.hpp"

папку spawn кидаешь в папку миссии  (берешь себе из ESS-master\Epoch 1.0.5.1\Napf)

 

идешь в папку dayz_server \ init \  открываешь server_functions и ищешь 

 

dayz_recordLogin = {
   private["_key"];
   _key = format["CHILD:103:%1:%2:%3:",_this select 0,_this select 1,_this select 2];
   _key call server_hiveWrite;
};


сразу под ним вставляешь
 
#include "ESSconfig.sqf"

В нижней части server_functions.sqf добавить следующую строку:

execVM "\z\addons\dayz_server\init\ESSfloor.sqf";

Теперь положи ESSconfig.sqf и ESSfloor.sqf в dayz_server\init\ 

 

В dayz_server\compile\server_playerSetup.sqf  найти етот весь блок 

 

 

if (_randomSpot) then {
        private["_counter","_position","_isNear","_isZero","_mkr"];
        if (!isDedicated) then {
                endLoadingScreen;
        };
       
        //Spawn modify via mission init.sqf
        if(isnil "spawnArea") then {
                spawnArea = 1500;
        };
        if(isnil "spawnShoremode") then {
                spawnShoremode = 1;
        };
       
        //
        _spawnMC = actualSpawnMarkerCount;
 
        //spawn into random
        _findSpot = true;
        _mkr = "";
        while {_findSpot} do {
                _counter = 0;
                while {_counter < 20 && _findSpot} do {
                        // switched to floor
                        _mkr = "spawn" + str(floor(random _spawnMC));
                        _position = ([(getMarkerPos _mkr),0,spawnArea,10,0,2000,spawnShoremode] call BIS_fnc_findSafePos);
                        _isNear = count (_position nearEntities ["Man",100]) == 0;
                        _isZero = ((_position select 0) == 0) && ((_position select 1) == 0);
                        //Island Check          //TeeChange
                        _pos            = _position;
                        _isIsland       = false;                //Can be set to true during the Check
                        for [{_w=0},{_w<=150},{_w=_w+2}] do {
                                _pos = [(_pos select 0),((_pos select 1) + _w),(_pos select 2)];
                                if(surfaceisWater _pos) exitWith {
                                        _isIsland = true;
                                };
                        };
                       
                        if ((_isNear && !_isZero) || _isIsland) then {_findSpot = false};
                        _counter = _counter + 1;
                };
        };
        _isZero = ((_position select 0) == 0) && ((_position select 1) == 0);
        _position = [_position select 0,_position select 1,0];
        if (!_isZero) then {
                //_playerObj setPosATL _position;
                _worldspace = [0,_position];
        };
}; 

 

 

 

 

и заменить на 

 

if (_randomSpot) then {
   if (!isDedicated) then {endLoadingScreen;};
   _debug = getMarkerpos "respawn_west";
   _worldspace = [0,[_debug select 0,_debug select 1,0.3]];
};

Тут же в етом файле найти 

dayzPlayerLogin2 = [_worldspace,_state];

и заменить на 

dayzPlayerLogin2 = [_worldspace,_state,_randomSpot];


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

Перевёл бы что ли тогда нормально гайд  :laugh:

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

  • Similar Content

    • By DrTauren
      Всем привет!
      Гайдов давно не было, так что сегодня научу вас одной премудрости, которую нашёл недавно. А именно выбор спавна как в @DayZ 1.8.0.3 (скрин внизу).

      Что нам понадобится:
      1) Notepad
      2) Архив для DayZ EPOCH 1.0.4.2 (обновлено)
      3) Если версия вашего сервера EPOCH 1.0.5.2, то используйте архив выше, но замените файл player_monitor.sqf этим (обновлено)

      Инструкция:
      1) Качаем архив и копируем папку dayz_code в папку с вашей миссией
      2) Файл server_playerSetup.sqf вставляем с заменой по пути: @DayZ_Epoch_Server\addons\dayz_server\compile (сначала нужно распаковать dayz_server.pbo, естественно)
      3) В самый низ description.ext добавляем:
      #include "dayz_code\config\RscDisplaySpawnSelecter.hpp" 4) В init.sqf под строками
      spawnShoremode = 1; // Default = 1 (on shore) spawnArea= 1500; // Default = 1500 Добавляем вот это:
      dayz_spawnselection = 1; // DayZ Spawnselection / 1 = enabled // 0 = disabled, No current spawn limits. 5) В init.sqf заменяем эту строку:
      _playerMonitor =     [] execVM "\z\addons\dayz_code\system\player_monitor.sqf"; Вот этой:
      _playerMonitor =     [] execVM "dayz_code\system\player_monitor.sqf"; 6) Заходим в mission.sqm, находим раздел класса "Markers" и заменяем весь блок на это:
       
       

      Понравился гайд? Ставь +
      P.S. Копипастеры горят в аду :happy:

      АРХИВ ПЕРЕЗАЛИТ, ГАЙД ДОРАБОТАН

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

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